@Override
  public Object run(Session session, String dbName, Object... input) {

    if (input.length != 3) {
      throw new IllegalArgumentException("Expected input of length 3");
    }

    if (!(input[0] instanceof Object[])) {
      throw new IllegalArgumentException("Expected input[0] to be an Object array");
    }

    if (!(input[1] instanceof Task)) {
      throw new IllegalArgumentException("Expected input[1] to be a Task");
    }

    if (!(input[2] instanceof TaskManager)) {
      throw new IllegalArgumentException("Expected input[2] to be a TaskManager");
    }

    Object[] args = (Object[]) input[0];

    Task taskToRun = (Task) input[1];

    TaskManager taskMgr = (TaskManager) input[2];

    if (taskToRun == taskMgr.getInsertTask()) {
      return dfltTaskMgr.getMergeForInsertTask().run(session, dbName, args);
    } else if (taskToRun == taskMgr.getUpdateTask()) {
      return dfltTaskMgr.getMergeForUpdateTask().run(session, dbName, args);
    } else {
      return args;
    }
  }
示例#2
0
 public Object insert(Object o) {
   return dsMgr.invoke(taskMgr.getInsertTask(), o);
 }