[java-opensaml COMMIT] in /trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context: AbstractContext...

noreply at shibboleth.net noreply at shibboleth.net
Sat Jan 21 02:08:37 GMT 2012


Author: putmanb
Date: Sat Jan 21 02:08:37 2012
New Revision: 2927

URL: http://svn.shibboleth.net/view/java-opensaml?rev=2927&view=rev
Log:
Collapse Subcontext and SubcontextContainer into unified Context interface.
Implement new AbstractContext base implementation.

Added:
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/AbstractContext.java
      - copied, changed from r2926, trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/AbstractSubcontextContainer.java
Removed:
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/AbstractSubcontext.java
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/AbstractSubcontextContainer.java
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/Subcontext.java
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/SubcontextContainer.java
Modified:
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/BasicInOutOperationContext.java
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/BasicMessageContext.java
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/BasicMessageMetadataSubcontext.java
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/Context.java
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/MessageContext.java
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/OperationContext.java

Copied: trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/AbstractContext.java (from r2926, trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/AbstractSubcontextContainer.java)
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/AbstractContext.java?p2=trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/AbstractContext.java&p1=trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/AbstractSubcontextContainer.java&r1=2926&r2=2927&rev=2927&view=diff
==============================================================================
--- trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/AbstractSubcontextContainer.java (original)
+++ trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/AbstractContext.java Sat Jan 21 02:08:37 2012
@@ -20,41 +20,145 @@
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.util.Iterator;
+import java.util.UUID;
 
 import net.shibboleth.utilities.java.support.collection.ClassIndexedSet;
-
+import net.shibboleth.utilities.java.support.logic.Assert;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
+
+import org.joda.time.DateTime;
 import org.opensaml.messaging.MessageRuntimeException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 
 /**
- * Abstract implementation of {@link SubcontextContainer}.
+ * Abstract implementation of {@link Context}.
  */
-public abstract class AbstractSubcontextContainer implements SubcontextContainer {
-    
+public abstract class AbstractContext implements Context {
+
     /** Logger. */
-    private final Logger log = LoggerFactory.getLogger(AbstractSubcontextContainer.class);
-    
+    private final Logger log = LoggerFactory.getLogger(AbstractContext.class);
+    
+    /** The owning parent context. */
+    private Context parent;
+
     /** The subcontexts being managed. */
-    private ClassIndexedSet<Subcontext> subcontexts;
+    private ClassIndexedSet<Context> subcontexts;
+    
+    /** The context id. */
+    private String id;
+    
+    /** The context creation time. */
+    private DateTime creationTime;
     
     /** Flag indicating whether subcontexts should, by default, be created if they do not exist. */
     private boolean autoCreateSubcontexts;
     
-    /** Constructor. */
-    public AbstractSubcontextContainer() {
-        subcontexts = new ClassIndexedSet<Subcontext>();
+    /** Constructor. Generates a random context id. */
+    public AbstractContext() {
+        subcontexts = new ClassIndexedSet<Context>();
+        id = UUID.randomUUID().toString();
+        creationTime = new DateTime();
         autoCreateSubcontexts = true;
     }
     
-    /** {@inheritDoc} */
-    public <T extends Subcontext> T getSubcontext(Class<T> clazz) {
+    /**
+     * Constructor.
+     * 
+     * @param contextId ID for this context, not null nor empty
+     */
+    public AbstractContext(final String contextId) {
+        this();
+        setId(contextId);
+    }
+    
+    /**
+     * Constructor. Adds this context as a child of the given parent.
+     * Generates a random context id.
+     * 
+     * @param newParent the owning parent context.
+     */
+    public AbstractContext(final Context newParent) {
+        this();
+        setParent(newParent);
+    }
+    
+    /**
+     * Constructor.
+     * 

[... 467 lines stripped ...]


More information about the commits mailing list