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()); } } }
public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException { try { if (qName.equals("species")) { params.setParam("Species", atts.getValue("name")); } else if (qName.equals("param")) { params.setParam(atts.getValue("name"), atts.getValue("value")); } } catch (ParamError e) { errors += e.getMessage() + "\n"; // throw new SAXException(e.getMessage()); } }