[java-opensaml COMMIT] in /trunk: opensaml-core/src/main/java/org/opensaml/core/xml/AbstractXMLObject.java opensaml-c...

noreply at shibboleth.net noreply at shibboleth.net
Fri Aug 16 17:19:52 EDT 2013


Author: putmanb
Date: Fri Aug 16 17:19:51 2013
New Revision: 3424

URL: http://svn.shibboleth.net/view/java-opensaml?rev=3424&view=rev
Log:
Add object metadata support to XMLObject interface.

Modified:
    trunk/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractXMLObject.java
    trunk/opensaml-core/src/main/java/org/opensaml/core/xml/XMLObject.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/provider/ChainingMetadataProvider.java

Modified: trunk/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractXMLObject.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractXMLObject.java?rev=3424&r1=3423&r2=3424&view=diff
==============================================================================
--- trunk/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractXMLObject.java (original)
+++ trunk/opensaml-core/src/main/java/org/opensaml/core/xml/AbstractXMLObject.java Fri Aug 16 17:19:51 2013
@@ -24,6 +24,7 @@
 import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
+import net.shibboleth.utilities.java.support.collection.ClassToInstanceMultiMap;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.xml.QNameSupport;
@@ -68,6 +69,9 @@
     
     /** The namespace manager for this XML object. */
     private NamespaceManager nsManager;
+    
+    /** The multimap holding class-indexed instances of additional info associated with this XML object. */
+    private ClassToInstanceMultiMap<Object> objectMetadata;
 
     /**
      * Mapping of ID attributes to XMLObjects in the subtree rooted at this object. This allows constant-time
@@ -90,6 +94,7 @@
         if(namespaceURI != null){
             setElementNamespacePrefix(namespacePrefix);
         }
+        objectMetadata = new ClassToInstanceMultiMap<>(true);
     }
 
     /** {@inheritDoc} */
@@ -526,4 +531,9 @@
         manageQualifiedAttributeNamespace(XmlConstants.XSI_NIL_ATTRIB_NAME, nil != null);
     }
 
+    /** {@inheritDoc} */
+    @Nonnull public ClassToInstanceMultiMap<Object> getObjectMetadata() {
+        return objectMetadata;
+    }
+
 }

Modified: trunk/opensaml-core/src/main/java/org/opensaml/core/xml/XMLObject.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-core/src/main/java/org/opensaml/core/xml/XMLObject.java?rev=3424&r1=3423&r2=3424&view=diff
==============================================================================
--- trunk/opensaml-core/src/main/java/org/opensaml/core/xml/XMLObject.java (original)
+++ trunk/opensaml-core/src/main/java/org/opensaml/core/xml/XMLObject.java Fri Aug 16 17:19:51 2013
@@ -24,6 +24,8 @@
 import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
+import net.shibboleth.utilities.java.support.collection.ClassToInstanceMultiMap;
+
 import org.opensaml.core.xml.schema.XSBooleanValue;
 import org.opensaml.core.xml.util.IDIndex;
 import org.w3c.dom.Element;
@@ -280,5 +282,20 @@
      * @param newNil whether the object's content model is expressed as null
      */
     public void setNil(@Nullable final XSBooleanValue newNil);
+    
+    
+    /**
+     * Get the mutable multimap which holds additional information (represented by plain Java object instances)
+     * associated with this XMLObject.
+     * 
+     * <p>
+     * Objects added to this multimap will be indexed and retrievable by their concrete {@link Class}
+     * as well as by the {@link Class} types representing all superclasses (excluding <code>java.lang.Object</code>) 
+     * and all implemented interfaces.
+     * </p>
+     * 
+     * @return the class-to-instance multimap
+     */
+    @Nonnull public ClassToInstanceMultiMap<Object> getObjectMetadata();
 
 }

Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/provider/ChainingMetadataProvider.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/provider/ChainingMetadataProvider.java?rev=3424&r1=3423&r2=3424&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/provider/ChainingMetadataProvider.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/provider/ChainingMetadataProvider.java Fri Aug 16 17:19:51 2013
@@ -28,6 +28,7 @@
 import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
+import net.shibboleth.utilities.java.support.collection.ClassToInstanceMultiMap;
 import net.shibboleth.utilities.java.support.collection.LazySet;
 import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
 import net.shibboleth.utilities.java.support.resolver.ResolverException;
@@ -521,5 +522,11 @@
             // do nothing
         }
 
+        /** {@inheritDoc} */
+        @Nonnull public ClassToInstanceMultiMap<Object> getObjectMetadata() {

[... 7 lines stripped ...]


More information about the commits mailing list