[java-opensaml COMMIT] /trunk/opensaml-core/src/main/java/org/opensaml/xml/util/XMLObjectHelper.java

noreply at shibboleth.net noreply at shibboleth.net
Tue Jan 31 00:20:41 GMT 2012


Author: putmanb
Date: Tue Jan 31 00:20:40 2012
New Revision: 2942

URL: http://svn.shibboleth.net/view/java-opensaml?rev=2942&view=rev
Log:
Add some desirable helper methods.

Modified:
    trunk/opensaml-core/src/main/java/org/opensaml/xml/util/XMLObjectHelper.java

Modified: trunk/opensaml-core/src/main/java/org/opensaml/xml/util/XMLObjectHelper.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-core/src/main/java/org/opensaml/xml/util/XMLObjectHelper.java?rev=2942&r1=2941&r2=2942&view=diff
==============================================================================
--- trunk/opensaml-core/src/main/java/org/opensaml/xml/util/XMLObjectHelper.java (original)
+++ trunk/opensaml-core/src/main/java/org/opensaml/xml/util/XMLObjectHelper.java Tue Jan 31 00:20:40 2012
@@ -30,9 +30,13 @@
 import net.shibboleth.utilities.java.support.xml.QNameSupport;
 import net.shibboleth.utilities.java.support.xml.SerializeSupport;
 
+import org.opensaml.core.config.ConfigurationService;
 import org.opensaml.xml.Configuration;
 import org.opensaml.xml.Namespace;
 import org.opensaml.xml.XMLObject;
+import org.opensaml.xml.XMLObjectBuilder;
+import org.opensaml.xml.XMLObjectBuilderFactory;
+import org.opensaml.xml.XMLObjectProviderRegistry;
 import org.opensaml.xml.XMLRuntimeException;
 import org.opensaml.xml.io.Marshaller;
 import org.opensaml.xml.io.MarshallingException;
@@ -384,4 +388,93 @@
         }
     }
     
+    /**
+     * Build an XMLObject based on the element name.
+     * 
+     * @param elementName the element name
+     * @return an XMLObject, or null if no provider registered
+     */
+    public static XMLObject buildXMLObject(QName elementName) {
+        XMLObjectBuilder<XMLObject> builder = getProviderRegistry().getBuilderFactory().getBuilder(elementName);
+        if (builder != null) {
+            return builder.buildObject(elementName);
+        } else {
+            return null;
+        }
+    }
+    
+    /**
+     * Build an XMLObject based on the element nane and xsi:type.
+     * 
+     * @param elementName the element name
+     * @param typeName the xsi:type
+     * @return an XMLObject, or null if no provider registered
+     */
+    public static XMLObject buildXMLObject(QName elementName, QName typeName) {
+        XMLObjectBuilder<XMLObject> builder = getProviderRegistry().getBuilderFactory().getBuilder(elementName);
+        if (builder != null) {
+            return builder.buildObject(elementName, typeName);
+        } else {
+            return null;
+        }
+    }
+    
+    /**
+     * Obtain an XMLObject builder for the given QName.
+     * 
+     * @param typeOrName the element name or type
+     * @return an XMLObject builder, or null if no provider registered
+     */
+    public static XMLObjectBuilder<XMLObject> getBuilder(QName typeOrName) {
+        return getProviderRegistry().getBuilderFactory().getBuilder(typeOrName);
+    }
+    
+    /**
+     * Obtain an XMLObject marshaller for the given QName.
+     * 
+     * @param typeOrName the element name or type
+     * @return an XMLObject marshaller, or null if no provider registered
+     */
+    public static Marshaller getMarshaller(QName typeOrName) {
+        return getProviderRegistry().getMarshallerFactory().getMarshaller(typeOrName);
+    }
+    
+    /**
+     * Obtain an XMLObject marshaller for the given XMLObject.
+     * 
+     * @param xmlObject the XMLObject to be marshalled
+     * @return an XMLObject marshaller, or null if no provider registered
+     */
+    public static Marshaller getMarshaller(XMLObject xmlObject) {
+        return getProviderRegistry().getMarshallerFactory().getMarshaller(xmlObject);
+    }
+    
+    /**
+     * Obtain an XMLObject unmarshaller for the given QName.
+     * 
+     * @param typeOrName the element name or type
+     * @return an XMLObject unmarshaller, or null if no provider registered
+     */
+    public static Unmarshaller getunmarshaller(QName typeOrName) {
+        return getProviderRegistry().getUnmarshallerFactory().getUnmarshaller(typeOrName);
+    }
+    
+    /**
+     * Obtain an XMLObject unmarshaller  for the given DOM Element.
+     * 
+     * @param element the DOM element
+     * @return an XMLObject unmarshaller, or null if no provider registered
+     */
+    public static Unmarshaller getunmarshaller(Element element) {
+        return getProviderRegistry().getUnmarshallerFactory().getUnmarshaller(element);
+    }
+    
+    /**
+     * Obtain the XMLObject provider registry.
+     * 
+     * @return the configured XMLObject provider registry
+     */
+    private static XMLObjectProviderRegistry getProviderRegistry() {
+        return ConfigurationService.get(XMLObjectProviderRegistry.class);
+    }
 }



More information about the commits mailing list