package foundation.io.action;
|
|
import java.lang.reflect.Method;
|
|
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.Logger;
|
|
import foundation.dao.DataReader;
|
import foundation.dao.DataWriter;
|
import foundation.data.entity.EntitySet;
|
import foundation.handler.Handler;
|
import foundation.handler.MethodPublisher;
|
import foundation.io.define.DataIO;
|
import foundation.io.define.IOTask;
|
|
public abstract class IOActionProvider extends MethodPublisher {
|
|
protected static Logger logger;
|
protected boolean terminated;
|
protected DataReader dataReader;
|
protected DataWriter dataWriter;
|
|
static {
|
logger = LogManager.getLogger(Handler.class);
|
}
|
|
public void init(DataReader dataReader, DataWriter dataWriter) {
|
this.dataReader = dataReader;
|
this.dataWriter = dataWriter;
|
}
|
|
public void exec(String methodName, IOTask ioTask, DataIO dataIO, EntitySet entitySet) {
|
Method method = getMethod(methodName);
|
|
if (method == null) {
|
logger.error("method exec error: {} not exists", methodName);
|
return;
|
}
|
|
try {
|
method.invoke(this, ioTask, dataIO, entitySet);
|
}
|
catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
public void terminate() {
|
terminated = true;
|
}
|
|
public boolean isTerminated() {
|
return terminated;
|
}
|
|
}
|