You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by bl...@apache.org on 2002/06/26 15:36:03 UTC
cvs commit: jakarta-avalon-excalibur/util/src/java/org/apache/excalibur/util ComponentStateValidator.java
bloritsch 2002/06/26 06:36:03
Modified: util/src/java/org/apache/excalibur/util
ComponentStateValidator.java
Log:
update ComponentValidator
Revision Changes Path
1.3 +58 -11 jakarta-avalon-excalibur/util/src/java/org/apache/excalibur/util/ComponentStateValidator.java
Index: ComponentStateValidator.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/util/src/java/org/apache/excalibur/util/ComponentStateValidator.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ComponentStateValidator.java 2 May 2002 16:54:22 -0000 1.2
+++ ComponentStateValidator.java 26 Jun 2002 13:36:03 -0000 1.3
@@ -12,6 +12,7 @@
import org.apache.avalon.framework.activity.Startable;
import org.apache.avalon.framework.activity.Suspendable;
import org.apache.avalon.framework.component.Composable;
+import org.apache.avalon.framework.service.Serviceable;
import org.apache.avalon.framework.component.Recomposable;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Reconfigurable;
@@ -41,10 +42,11 @@
private static final long LOGGABLE = 0x00000002;
private static final long CONTEXTUALIZABLE = 0x00000004;
private static final long COMPOSABLE = 0x00000008;
- private static final long CONFIGURABLE = 0x00000010;
- private static final long PARAMETERIZABLE = 0x00000020;
- private static final long INITIALIZABLE = 0x00000040;
- private static final long STARTABLE = 0x00000060;
+ private static final long SERVICEABLE = 0x00000010;
+ private static final long CONFIGURABLE = 0x00000020;
+ private static final long PARAMETERIZABLE = 0x00000040;
+ private static final long INITIALIZABLE = 0x00000080;
+ private static final long STARTABLE = 0x00000100;
private static final long SUSPENDABLE = 0x00001000;
private static final long RECONTEXTUALIZABLE = 0x00002000;
private static final long RECOMPOSABLE = 0x00004000;
@@ -55,11 +57,12 @@
private static final long ENABLE_LOGGING = 0x00000001;
private static final long SET_LOGGER = 0x00000002;
private static final long CONTEXTUALIZE = 0x00000004;
- private static final long COMPOSE = 0x00000008;
- private static final long CONFIGURE = 0x00000010;
- private static final long PARAMETERIZE = 0x00000020;
- private static final long INITIALIZE = 0x00000040;
- private static final long START = 0x00000080;
+ private static final long SERVICE = 0x00000008;
+ private static final long COMPOSE = 0x00000010;
+ private static final long CONFIGURE = 0x00000020;
+ private static final long PARAMETERIZE = 0x00000040;
+ private static final long INITIALIZE = 0x00000080;
+ private static final long START = 0x00000100;
private static final long INIT_COMPLETE = 0x00000400;
// Active Service Methods
@@ -75,7 +78,7 @@
// Masks
private static final long INIT_MASK = ENABLE_LOGGING | SET_LOGGER |
- CONTEXTUALIZE | COMPOSE | CONFIGURE | PARAMETERIZE | INITIALIZE |
+ CONTEXTUALIZE | COMPOSE | SERVICE | CONFIGURE | PARAMETERIZE | INITIALIZE |
START;
private final long m_interfaces;
@@ -112,9 +115,20 @@
interfaces |= CONTEXTUALIZABLE;
methods |= CONTEXTUALIZE;
}
+
+ if( object instanceof Serviceable )
+ {
+ interfaces |= SERVICEABLE;
+ methods |= SERVICE;
+ }
if( object instanceof Composable )
{
+ if ( (interfaces & SERVICEABLE) > 0 )
+ {
+ throw new IllegalStateException("Cannot implement Composable and Serviceable together");
+ }
+
interfaces |= COMPOSABLE;
methods |= COMPOSE;
}
@@ -193,6 +207,10 @@
{
return Contextualizable.class.getName();
}
+ else if( interfaceId == SERVICEABLE )
+ {
+ return Serviceable.class.getName();
+ }
else if( interfaceId == COMPOSABLE )
{
return Composable.class.getName();
@@ -253,6 +271,10 @@
{
return "contextualize()";
}
+ else if( methodId == SERVICE )
+ {
+ return "service()";
+ }
else if( methodId == COMPOSE )
{
return "compose()";
@@ -573,6 +595,31 @@
public void checkContextualized( final String message )
{
generalCheckInit( message, CONTEXTUALIZABLE, CONTEXTUALIZE );
+ }
+
+ /**
+ * Throw an exception if the initialization is out of order. It tests to see
+ * if the SERVICE state has already been set, if the component implements
+ * Composable, and if the state has progressed beyond the Configuration stage.
+ *
+ * @throws IllegalStateException if the state is manage out of order
+ */
+ public void checkServiced()
+ {
+ checkServiced( null );
+ }
+
+ /**
+ * Throw an exception if the initialization is out of order. It tests to see
+ * if the SERVICE state has already been set, if the component implements
+ * Composable, and if the state has progressed beyond the Configuration stage.
+ *
+ * @param message the message to include in the thrown exception
+ * @throws IllegalStateException if the state is manage out of order
+ */
+ public void checkServiced( final String message )
+ {
+ generalCheckInit( message, SERVICEABLE, SERVICE );
}
/**
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>