69 lines
1.4 KiB
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<>();
|
|
}
|
|
}
|