cubetiq-sql-core/src/main/java/com/cubetiqs/sql/ExecuteResult.java

69 lines
1.4 KiB
Java

package com.cubetiqs.sql;
import java.util.Date;
public class ExecuteResult<R> implements IExecuteResult<R> {
private R data;
private Throwable error;
public ExecuteResult() {
}
public ExecuteResult(R data, Throwable error) {
this.data = data;
this.error = error;
}
private final Date start = new Date();
public void setData(R data) {
this.data = data;
}
public void setError(Throwable error) {
this.error = error;
}
@Override
public R getData() {
return data;
}
@Override
public Throwable getError() {
return error;
}
@Override
public long getDuration() {
return new Date().getTime() - start.getTime();
}
public static ExecuteResult<Object> createEmpty() {
return builder().build();
}
public static class ExecuteResultBuilder<R> {
private R data;
private Throwable error;
public ExecuteResultBuilder<R> data(R data) {
this.data = data;
return this;
}
public ExecuteResultBuilder<R> error(Throwable error) {
this.error = error;
return this;
}
public ExecuteResult<R> build() {
return new ExecuteResult<>(data, error);
}
}
public static <R> ExecuteResultBuilder<R> builder() {
return new ExecuteResultBuilder<>();
}
}