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