You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by gs...@apache.org on 2008/04/25 09:23:39 UTC

svn commit: r651512 - /labs/vysper/src/main/java/org/apache/vysper/xmpp/xmlfragment/XMLElementVerifier.java

Author: gseitz
Date: Fri Apr 25 00:23:30 2008
New Revision: 651512

URL: http://svn.apache.org/viewvc?rev=651512&view=rev
Log:
[vysper] added convenience methods

Modified:
    labs/vysper/src/main/java/org/apache/vysper/xmpp/xmlfragment/XMLElementVerifier.java

Modified: labs/vysper/src/main/java/org/apache/vysper/xmpp/xmlfragment/XMLElementVerifier.java
URL: http://svn.apache.org/viewvc/labs/vysper/src/main/java/org/apache/vysper/xmpp/xmlfragment/XMLElementVerifier.java?rev=651512&r1=651511&r2=651512&view=diff
==============================================================================
--- labs/vysper/src/main/java/org/apache/vysper/xmpp/xmlfragment/XMLElementVerifier.java (original)
+++ labs/vysper/src/main/java/org/apache/vysper/xmpp/xmlfragment/XMLElementVerifier.java Fri Apr 25 00:23:30 2008
@@ -20,113 +20,149 @@
 import java.util.List;
 
 /**
- * provides common tools to check a element against its specification or semantical context
- * this classes instances are immutual.
- *
+ * provides common tools to check a element against its specification or
+ * semantical context this classes instances are immutual.
+ * 
  * TODO add unit test
  */
 public class XMLElementVerifier {
-    protected XMLElement element;
+	protected XMLElement element;
 
-    protected XMLElementVerifier(XMLElement element) {
-        if (element == null) throw new IllegalArgumentException("null not allowed for element");
-        this.element = element;
-    }
-
-    public boolean nameEquals(String name) {
-        return element.getName().equals(name);
-    }
-
-    public boolean attributePresent(String name) {
-        return null != element.getAttribute(name);
-    }
-
-    public boolean attributeEquals(String name, String value) {
-        return attributePresent(name) && element.getAttribute(name).getValue().equals(value);
-    }
-
-    public boolean subElementPresent(String name) {
-        for (XMLFragment xmlFragment : element.getInnerFragments()) {
-            if (xmlFragment instanceof XMLElement) {
-                XMLElement xmlElement = (XMLElement) xmlFragment;
-                if (xmlElement.getName().equals(name)) return true;
-            }
-        }
-        return false;
-    }
-
-    public boolean subElementsPresentExact(int numberOfSubelements) {
-        return element.getInnerFragments().size() == numberOfSubelements;
-    }
-
-    public boolean subElementsPresentAtLeast(int numberOfSubelements) {
-        return element.getInnerFragments().size() >= numberOfSubelements;
-    }
-
-    public boolean subElementsPresentAtMost(int numberOfSubelements) {
-        return element.getInnerFragments().size() <= numberOfSubelements;
-    }
-
-    public boolean namespacePresent(String namespaceURI) {
-        for (Attribute attribute : element.getAttributes()) {
-            if (isNamespaceAttribute(attribute) && attribute.getValue().equals(namespaceURI)) {
-                return true;
-            }
-        }
-        return false; // not present
-    }
-
-    /**
-     * example for "http://myNS.org/anything", this method returns "myNS" for 
-     * element <test xmlns:myNS="http://myNS.org/anything" />
-     * @return the identifier for the given namespace definition
-     */
-    public String getNamespaceIdentifier(String namespace) {
-        for (Attribute attribute : element.getAttributes()) {
-            if (attribute.getValue().equals(namespace) 
-                && attribute.getName().startsWith(NamespaceAttribute.XMLNS_AND_COLON)) {
-                return attribute.getName().substring(NamespaceAttribute.XMLNS_AND_COLON.length());
-            }
-        }
-        return null;
-    } 
-    
-    private boolean isNamespaceAttribute(Attribute attribute) {
-        return (attribute.getName().equalsIgnoreCase(NamespaceAttribute.XMLNS)
-                 || attribute.getName().startsWith(NamespaceAttribute.XMLNS_AND_COLON));
-    }
-
-    public String getUniqueXMLNSValue() {
-        Attribute found = null;
-        for (Attribute attribute : element.getAttributes()) {
-            if (isNamespaceAttribute(attribute)) {
-                if (found != null) return null; // not unique
-                else {
-                    found = attribute;
-                }
-            }
-        }
-        if (found == null) return null;
-        return found.getValue();
-    }
-    
-    public boolean toAttributeEquals(String toValue) {
-        return attributeEquals("to", toValue);
-    }
-
-    public boolean fromAttributeEquals(String fromValue) {
-        return attributeEquals("from", fromValue);
-    }
-
-    public boolean onlySubelementEquals(String name, String namespaceURI) {
-        List<XMLFragment> innerFragments = element.getInnerFragments();
-
-        // really is only subelement
-        if (innerFragments == null || innerFragments.size() != 1) return false;
-        XMLFragment onlySubelement = innerFragments.get(0);
-        if (!(onlySubelement instanceof XMLElement)) return false;
-
-        XMLElement xmlElement = ((XMLElement) onlySubelement);
-        return name.equals(xmlElement.getName()) && namespaceURI.equals(xmlElement.getNamespace());
-    }
+	protected XMLElementVerifier(XMLElement element) {
+		if (element == null)
+			throw new IllegalArgumentException("null not allowed for element");
+		this.element = element;
+	}
+
+	public boolean nameEquals(String name) {
+		return element.getName().equals(name);
+	}
+
+	public boolean attributePresent(String name) {
+		return null != element.getAttribute(name);
+	}
+
+	public boolean allAttributesPresent(String... names) {
+		if (names == null) {
+			return false;
+		}
+		for (String name : names) {
+			if (!attributePresent(name)) {
+				return false;
+			}
+		}
+		return true;
+	}
+
+	public boolean anyAttributePresent(String... names) {
+		if (names == null) {
+			return false;
+		}
+		for (String name : names) {
+			if (attributePresent(name)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public boolean attributeEquals(String name, String value) {
+		return attributePresent(name)
+				&& element.getAttribute(name).getValue().equals(value);
+	}
+
+	public boolean subElementPresent(String name) {
+		for (XMLFragment xmlFragment : element.getInnerFragments()) {
+			if (xmlFragment instanceof XMLElement) {
+				XMLElement xmlElement = (XMLElement) xmlFragment;
+				if (xmlElement.getName().equals(name))
+					return true;
+			}
+		}
+		return false;
+	}
+
+	public boolean subElementsPresentExact(int numberOfSubelements) {
+		return element.getInnerFragments().size() == numberOfSubelements;
+	}
+
+	public boolean subElementsPresentAtLeast(int numberOfSubelements) {
+		return element.getInnerFragments().size() >= numberOfSubelements;
+	}
+
+	public boolean subElementsPresentAtMost(int numberOfSubelements) {
+		return element.getInnerFragments().size() <= numberOfSubelements;
+	}
+
+	public boolean namespacePresent(String namespaceURI) {
+		for (Attribute attribute : element.getAttributes()) {
+			if (isNamespaceAttribute(attribute)
+					&& attribute.getValue().equals(namespaceURI)) {
+				return true;
+			}
+		}
+		return false; // not present
+	}
+
+	/**
+	 * example for "http://myNS.org/anything", this method returns "myNS" for
+	 * element <test xmlns:myNS="http://myNS.org/anything" />
+	 * 
+	 * @return the identifier for the given namespace definition
+	 */
+	public String getNamespaceIdentifier(String namespace) {
+		for (Attribute attribute : element.getAttributes()) {
+			if (attribute.getValue().equals(namespace)
+					&& attribute.getName().startsWith(
+							NamespaceAttribute.XMLNS_AND_COLON)) {
+				return attribute.getName().substring(
+						NamespaceAttribute.XMLNS_AND_COLON.length());
+			}
+		}
+		return null;
+	}
+
+	private boolean isNamespaceAttribute(Attribute attribute) {
+		return (attribute.getName().equalsIgnoreCase(NamespaceAttribute.XMLNS) || attribute
+				.getName().startsWith(NamespaceAttribute.XMLNS_AND_COLON));
+	}
+
+	public String getUniqueXMLNSValue() {
+		Attribute found = null;
+		for (Attribute attribute : element.getAttributes()) {
+			if (isNamespaceAttribute(attribute)) {
+				if (found != null)
+					return null; // not unique
+				else {
+					found = attribute;
+				}
+			}
+		}
+		if (found == null)
+			return null;
+		return found.getValue();
+	}
+
+	public boolean toAttributeEquals(String toValue) {
+		return attributeEquals("to", toValue);
+	}
+
+	public boolean fromAttributeEquals(String fromValue) {
+		return attributeEquals("from", fromValue);
+	}
+
+	public boolean onlySubelementEquals(String name, String namespaceURI) {
+		List<XMLFragment> innerFragments = element.getInnerFragments();
+
+		// really is only subelement
+		if (innerFragments == null || innerFragments.size() != 1)
+			return false;
+		XMLFragment onlySubelement = innerFragments.get(0);
+		if (!(onlySubelement instanceof XMLElement))
+			return false;
+
+		XMLElement xmlElement = ((XMLElement) onlySubelement);
+		return name.equals(xmlElement.getName())
+				&& namespaceURI.equals(xmlElement.getNamespace());
+	}
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org