[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