예제 #1
0
  /**
   * 创建一个wizard。
   *
   * @param descriptors 所有描述文件
   * @param props 属性文件
   */
  public ConfigWizard(ConfigDescriptor[] descriptors, PropertiesSet propSet, String charset) {
    this.propSet = propSet;

    // 初始化输入输出流
    try {
      in = new BufferedReader(new InputStreamReader(System.in, charset));
      out = new PrintWriter(new OutputStreamWriter(System.out, charset), true);
    } catch (UnsupportedEncodingException e) {
      throw new ConfigWizardException(e);
    }

    // 取得descriptors中的所有groups
    List groups = new ArrayList();

    for (ConfigDescriptor descriptor : descriptors) {
      ConfigGroup[] descriptorGroups = descriptor.getGroups();

      for (ConfigGroup descriptorGroup : descriptorGroups) {
        groups.add(descriptorGroup);
      }
    }

    this.groups = (ConfigGroup[]) groups.toArray(new ConfigGroup[groups.size()]);

    // 设置初始step
    setStep(0);
  }