CVTerm.Qualifier qualifier = CVTerm.Qualifier.getModelQualifierFor(bqmodelNode.getName()); CVTerm cvTerm = new CVTerm(CVTerm.Type.MODEL_QUALIFIER, qualifier, resources.toArray(new String[resources.size()])); cvTerm.putUserObject(JSBML.READING_IN_PROGRESS, Boolean.TRUE); if (!qualifier.getElementNameEquivalent().equals(bqmodelNode.getName())) { CVTerm.Qualifier qualifier = CVTerm.Qualifier.getBiologicalQualifierFor(bqbiolNode.getName()); CVTerm cvTerm = new CVTerm(CVTerm.Type.BIOLOGICAL_QUALIFIER, qualifier, resources.toArray(new String[resources.size()])); cvTerm.putUserObject(JSBML.READING_IN_PROGRESS, Boolean.TRUE); if (!qualifier.getElementNameEquivalent().equals(bqbiolNode.getName())) {
@Override public int hashCode() { final int prime = 821; int hashCode = super.hashCode(); if (isSetQualifier()) { hashCode += prime * getQualifier().hashCode(); } for (String uri : getResources()) { hashCode += prime * uri.hashCode(); } return hashCode; }
/** * @param elementNameEquivalent * @param prefix * @param unknownQualifier * @return */ private static Qualifier getQualifierFor(String elementNameEquivalent, String prefix, Qualifier unknownQualifier) { for (Qualifier q : values()) { if (q.name().startsWith(prefix) && q.getElementNameEquivalent().equals(elementNameEquivalent)) { return q; } } return unknownQualifier; }
String qualifierXMLName = cvterm.getQualifier().getElementNameEquivalent(); if (cvterm.getQualifier().equals(Qualifier.BQB_UNKNOWN) || cvterm.getQualifier().equals(Qualifier.BQM_UNKNOWN))
setQualifier(Qualifier.getBiologicalQualifierFor(miriam.getName())); } else { setQualifier(Qualifier.getModelQualifierFor(miriam.getName()));
/** * Sets the biological qualifier type of this {@link CVTerm}. * * @param qualifier * @throws IllegalArgumentException if the {@link Qualifier} is not a biological one or if * the {@link Type} was not set to {@link Type#BIOLOGICAL_QUALIFIER}. * @see #setQualifier(Qualifier) */ public void setBiologicalQualifierType(Qualifier qualifier) { if (qualifier != null) { if (qualifier.toString().startsWith("BQB")) { if (type == Type.BIOLOGICAL_QUALIFIER) { Qualifier oldValue = this.qualifier; this.qualifier = qualifier; firePropertyChange(TreeNodeChangeEvent.qualifier, oldValue, qualifier); } else { throw new IllegalArgumentException(MessageFormat.format( resourceBundle.getString("CVTerm.INVALID_TYPE_AND_QUALIFIER_COMBINATION_MSG"), type, qualifier)); } } else { throw new IllegalArgumentException(MessageFormat.format( resourceBundle.getString("CVTerm.setBiologicalQualifierType"), qualifier.toString())); } } }
/** * Returns a {@link String} containing the qualifier and all the resource * URIs of this {@link CVTerm}. * * @return a {@link String} containing the qualifier and all the resource * URIs of this {@link CVTerm}. */ public String printCVTerm() { String element, relationship; switch (getQualifierType()) { case MODEL_QUALIFIER: element = resourceBundle.getString("CVTerm.Type.MODEL_QUALIFIER"); relationship = getModelQualifierType().getElementNameEquivalent(); break; case BIOLOGICAL_QUALIFIER: element = resourceBundle.getString("CVTerm.Type.BIOLOGICAL_QUALIFIER"); relationship = getBiologicalQualifierType().getElementNameEquivalent(); break; default: // UNKNOWN_QUALIFIER element = resourceBundle.getString("CVTerm.Type.UNKNOWN_QUALIFIER"); relationship = resourceBundle.getString("CVTerm.Qualifier.UNKNOWN"); break; } return MessageFormat.format( resourceBundle.getString("CVTerm.humanReadable"), element, relationship, resourceURIs); }
/** * Sets the {@link Qualifier} of this {@link CVTerm}, sets at the same time the {@link Type} to the proper value. * * @param qualifier */ public void setQualifier(Qualifier qualifier) { Qualifier oldQualifier = this.qualifier; Type oldType = type; this.qualifier = qualifier; if (this.qualifier != null) { if (qualifier.isBiologicalQualifier()) { type = Type.BIOLOGICAL_QUALIFIER; } else if (qualifier.isModelQualifier()) { type = Type.MODEL_QUALIFIER; } else { type = Type.UNKNOWN_QUALIFIER; } } else { type = null; } firePropertyChange(TreeNodeChangeEvent.type, oldType, type); firePropertyChange(TreeNodeChangeEvent.qualifier, oldQualifier, qualifier); }
/** * Sets the model qualifier type of this {@link CVTerm}. * * @param qualifier * @throws IllegalArgumentException if the {@link Qualifier} is not a model one or if * the {@link Type} was not set to {@link Type#MODEL_QUALIFIER}. * @see #setQualifier(Qualifier) */ public void setModelQualifierType(Qualifier qualifier) { if (qualifier != null) { if (qualifier.toString().startsWith("BQM")) { if (type == Type.MODEL_QUALIFIER) { Qualifier oldValue = this.qualifier; this.qualifier = qualifier; firePropertyChange(TreeNodeChangeEvent.qualifier, oldValue, qualifier); } else { throw new IllegalArgumentException( resourceBundle.getString("CVTerm.setModelQualifierType1")); } } else { throw new IllegalArgumentException(MessageFormat.format( resourceBundle.getString("CVTerm.setModelQualifierType2"), qualifier.toString())); } } }
/** * Guesses the {@link Type} argument and sets the {@link Qualifier} * attribute appropriately. Then it adds all the given resources. * * @param qualifier * @param resources */ public CVTerm(Qualifier qualifier, String... resources) { this(); if (qualifier.isBiologicalQualifier()) { setQualifierType(Type.BIOLOGICAL_QUALIFIER); setBiologicalQualifierType(qualifier); } else { setQualifierType(Type.MODEL_QUALIFIER); setModelQualifierType(qualifier); } addResources(resources); }
/** * Writes all the MIRIAM annotations of the {@link CVTerm} in 'buffer' * * @param indent * @param buffer */ public void toXML(String indent, StringBuffer buffer) { StringTools.append(buffer, "<", type.getElementNameEquivalent(), ":", getQualifier().getElementNameEquivalent(), ">\n", indent, "<rdf:Bag>\n"); if (resourceURIs != null) { for (int i = 0; i < getResourceCount(); i++) { StringTools.append(buffer, indent, indent, "<rdf:li rdf:resource=\"", getResourceURI(i), "\"/>\n"); } } StringTools.append(buffer, indent, "</rdf:Bag>\n", "</", type.getElementNameEquivalent(), ":", getQualifier().getElementNameEquivalent(), ">\n"); }
/** * Returns {@code true} if this qualifier is a biological qualifier. * * @return {@code true} if this qualifier is a biological qualifier, * false otherwise. */ public boolean isBiologicalQualifier() { return !isModelQualifier(); }
/** * Returns {@code true} if the {@link Qualifier} of this {@link CVTerm} * is set and is different from {@link Qualifier#BQM_UNKNOWN} and {@link Qualifier#BQB_UNKNOWN}. * * @return {@code true} if the {@link Qualifier} of this {@link CVTerm} * is set. */ public boolean isSetQualifier() { return (qualifier != null) && (!qualifier.equals(Qualifier.BQM_UNKNOWN)) && (!qualifier.equals(Qualifier.BQB_UNKNOWN)); }
/** * Returns {@code true} if this qualifier is a model qualifier. * * @return {@code true} if this qualifier is a model qualifier, * {@code false} otherwise. */ public boolean isModelQualifier() { return toString().startsWith("BQM_"); }