CVS: plexus-container-new/src/java/org/apache/plexus/lifecycle AbstractLifecycleHandler.java,1.2,1.3

[email protected]
Newsgroups gmane.comp.java.plexus.devel
Message-ID <[email protected]>
Update of /cvsroot/plexus/plexus-container-new/src/java/org/apache/plexus/lifecycle
In directory eng.werken.com:/tmp/cvs-serv18947

Modified Files:
	AbstractLifecycleHandler.java 
Log Message:
o Deal with begin/suspend/resume/end segments of the lifecycle.


Index: AbstractLifecycleHandler.java
===================================================================
RCS file: /cvsroot/plexus/plexus-container-new/src/java/org/apache/plexus/lifecycle/AbstractLifecycleHandler.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- AbstractLifecycleHandler.java	24 Apr 2003 14:49:01 -0000	1.2
+++ AbstractLifecycleHandler.java	25 Apr 2003 19:22:33 -0000	1.3
@@ -1,15 +1,32 @@
 package org.apache.plexus.lifecycle;
 
 import org.apache.plexus.logging.AbstractLogEnabled;
+import org.apache.plexus.lifecycle.phase.Phase;
+import org.apache.plexus.service.repository.ServiceCapsule;
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.List;
+import java.util.Iterator;
+import java.util.ArrayList;
 
 public abstract class AbstractLifecycleHandler
     extends AbstractLogEnabled
     implements LifecycleHandler
 {
     private Map entities;
+    private List beginSegment;
+    private List suspendSegment;
+    private List resumeSegment;
+    private List endSegment;
+
+    public AbstractLifecycleHandler()
+    {
+        beginSegment = new ArrayList();
+        suspendSegment = new ArrayList();
+        resumeSegment = new ArrayList();
+        endSegment = new ArrayList();
+    }
 
     public Map getEntities()
     {
@@ -31,5 +48,117 @@
         getEntities().put( key, entity );
     }
 
-    public abstract void assembleSegments();
+    // ----------------------------------------------------------------------
+    // Begin Segment
+    // ----------------------------------------------------------------------
+
+    public void setBeginSegment( List beginSegment )
+    {
+        this.beginSegment = beginSegment;
+    }
+
+    public void addBeginSegmentPhase( Phase phase )
+    {
+        getBeginSegment().add( phase );
+    }
+
+    public List getBeginSegment()
+    {
+        return beginSegment;
+    }
+
+    // ----------------------------------------------------------------------
+    // Suspend Segment
+    // ----------------------------------------------------------------------
+
+    public void setSuspendSegment( List suspendSegment )
+    {
+        this.suspendSegment = suspendSegment;
+    }
+
+    public void addSuspendSegmentPhase( Phase phase )
+    {
+        getSuspendSegment().add( phase );
+    }
+
+    public List getSuspendSegment()
+    {
+        return suspendSegment;
+    }
+
+    // ----------------------------------------------------------------------
+    // Resume Segment
+    // ----------------------------------------------------------------------
+
+    public void setResumeSegment( List resumeSegment )
+    {
+        this.resumeSegment = resumeSegment;
+    }
+
+    public void addResumeSegmentPhase( Phase phase )
+    {
+        getResumeSegment().add( phase );
+    }
+
+    public List getResumeSegment()
+    {
+        return resumeSegment;
+    }
+
+    // ----------------------------------------------------------------------
+    // End Segment
+    // ----------------------------------------------------------------------
+
+    public void setEndSegment( List endSegment )
+    {
+        this.endSegment = endSegment;
+    }
+
+    public void addEndSegmentPhase( Phase phase )
+    {
+        getEndSegment().add( phase );
+    }
+
+    public List getEndSegment()
+    {
+        return endSegment;
+    }
+
+    // ----------------------------------------------------------------------
+    // Lifecylce Management
+    // ----------------------------------------------------------------------
+
+    /** Start a component's lifecycle.
+     *
+     *  @param service The component service.
+     *
+     *  @throws java.lang.Exception If an error occurs while attempting to beginSegment
+     *          the component's lifecycle.
+     */
+    public void startLifecycle( ServiceCapsule service )
+        throws Exception
+    {
+        for ( Iterator i = getBeginSegment().iterator(); i.hasNext(); )
+        {
+            Phase phase = (Phase) i.next();
+            phase.execute( service, this );
+        }
+    }
+
+    /** End a component's lifecycle.
+     *
+     *  @param service The component service.
+     *
+     *  @throws java.lang.Exception If an error occurs while attempting to endSegment
+     *          the component's lifecycle.
+     */
+    public void endLifecycle( ServiceCapsule service )
+        throws Exception
+    {
+        for ( Iterator i = getEndSegment().iterator(); i.hasNext(); )
+        {
+            Phase phase = (Phase) i.next();
+            phase.execute( service, this );
+        }
+    }
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.