@Override public boolean check(ValidationContext ctx, SpeciesReference sr) { // Can't be a Modifier if (sr.isSetStoichiometryMath()) { return !sr.isSetStoichiometry(); } return true; } };
@Override public boolean isSetValue() { return isSetStoichiometry(); }
@Override public boolean containsUndeclaredUnits() { if (isSetStoichiometryMath()) { return getStoichiometryMath().containsUndeclaredUnits(); } return isSetStoichiometry() ? false : true; }
/** * * @return the stoichiometry value of this {@link SpeciesReference} if it is * set, otherwise, depending on the Level attribute, 1 for Level < 3 * or {@link Double#NaN}. */ public double getStoichiometry() { if (isSetStoichiometry()) { return stoichiometry.doubleValue(); } return (getLevel() < 3) ? 1d : Double.NaN; }
@Override public String printSpeciesReference() { StringBuilder sb = new StringBuilder(); if (isSetStoichiometry() && (getStoichiometry() != 1d)) { sb.append(StringTools.toString(getStoichiometry())); sb.append(' '); } else if (isSetStoichiometryMath()) { sb.append(getStoichiometryMath().getMath().toFormula()); sb.append(' '); } sb.append(super.printSpeciesReference()); return sb.toString(); }
@Override public int hashCode() { final int prime = 937; int hashCode = super.hashCode(); if (isSetStoichiometry()) { hashCode += prime * stoichiometry.hashCode(); } if (isSetConstant()) { hashCode += prime * constant.hashCode(); } if (isSetDenominator()) { hashCode += prime * denominator.hashCode(); } return hashCode; }
/** * Creates a SpeciesReference instance from a given SpeciesReference. * * @param speciesReference */ @SuppressWarnings("deprecation") public SpeciesReference(SpeciesReference speciesReference) { super(speciesReference); if (speciesReference.isSetStoichiometryMath()) { setStoichiometryMath(speciesReference.getStoichiometryMath() .clone()); } if (speciesReference.isSetStoichiometry()) { setStoichiometry(new Double(speciesReference.getStoichiometry())); } else { stoichiometry = speciesReference.stoichiometry == null ? null : new Double(speciesReference.stoichiometry); } if (speciesReference.isSetConstant()) { setConstant(new Boolean(speciesReference.isConstant())); } else { constant = speciesReference.constant == null ? null : new Boolean(speciesReference.constant); } if (speciesReference.isSetDenominator) { setDenominator(new Integer(speciesReference.getDenominator())); } else { denominator = speciesReference.denominator == null ? null : new Integer(speciesReference.denominator); } }
@Override public Map<String, String> writeXMLAttributes() { Map<String, String> attributes = super.writeXMLAttributes(); if (isSetStoichiometry()) { attributes.put("stoichiometry", StringTools.toString( Locale.ENGLISH, getStoichiometry())); } if (isSetConstant()) { attributes.put("constant", Boolean.toString(isConstant())); } if (isSetDenominator() && (getLevel() == 1)) { int denominator = getDenominator(); if (denominator != 1) { attributes.put("denominator", Integer.toString(denominator)); } } return attributes; }
@Override public boolean equals(Object object) { boolean equals = super.equals(object); if (equals) { SpeciesReference sr = (SpeciesReference) object; equals &= sr.isSetStoichiometry() == isSetStoichiometry(); if (equals && isSetStoichiometry()) { equals &= sr.getStoichiometry() == getStoichiometry(); } equals &= sr.isSetConstant() == isSetConstant(); if (equals && isSetConstant()) { equals &= sr.isConstant() == isConstant(); } equals &= sr.isSetDenominator() == isSetDenominator(); if (equals && isSetDenominator()) { equals &= sr.getDenominator() == getDenominator(); } } return equals; }