Пример #1
0
  /** 通过传递的参数,解析出对应的command * */
  public static SkipCommand parse(List<String> optionList, ExecutionContext sessionContext)
      throws ODPSConsoleException {

    if (optionList.contains("-k")) {
      if (optionList.indexOf("-k") + 1 < optionList.size()) {

        int index = optionList.indexOf("-k");
        // 一定要这样,不能 通过index来remove
        String stepStr = optionList.get(index + 1);

        int step = 0;
        ;
        try {
          step = Integer.valueOf(stepStr);
        } catch (NumberFormatException e) {
          throw new ODPSConsoleException(
              ODPSConsoleConstants.BAD_COMMAND + ":need int value[" + stepStr + "]");
        }

        optionList.remove(optionList.indexOf("-k"));
        optionList.remove(stepStr);

        // skip只是设置一个context的内容,而且skip需要在parser阶段设置skip的值,因为命令需要在命令的统一入口skip掉command
        sessionContext.setStep(step);
      }
    }

    return null;
  }