예제 #1
0
  public Params(Params other) {

    // copy values from other
    debug = other.debug;
    verbose = other.verbose;
    ignoreVParams = other.ignoreVParams;
    stopLevel = other.stopLevel;
    Species = other.Species;
    WoodType = other.WoodType;
    Seed = other.Seed;
    Smooth = other.Smooth;

    // create paramDB
    paramDB = new Hashtable();
    levelParams = new LevelParams[4];
    for (int l = 0; l < 4; l++) {
      levelParams[l] = new LevelParams(l, paramDB);
    }
    registerParams();

    // copy param values
    for (Enumeration e = paramDB.elements(); e.hasMoreElements(); ) {
      AbstractParam p = ((AbstractParam) e.nextElement());
      try {
        AbstractParam otherParam = other.getParam(p.name);
        if (!otherParam.empty()) {
          p.setValue(otherParam.getValue());
        } // else use default value
      } catch (ParamError err) {
        System.err.println("Error copying params: " + err.getMessage());
      }
    }
  }