[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