View Javadoc

1   //========================================================================
2   //$Id: AbstractHandler.java,v 1.4 2005/11/11 22:55:39 gregwilkins Exp $
3   //Copyright 2004-2005 Mort Bay Consulting Pty. Ltd.
4   //------------------------------------------------------------------------
5   //Licensed under the Apache License, Version 2.0 (the "License");
6   //you may not use this file except in compliance with the License.
7   //You may obtain a copy of the License at 
8   //http://www.apache.org/licenses/LICENSE-2.0
9   //Unless required by applicable law or agreed to in writing, software
10  //distributed under the License is distributed on an "AS IS" BASIS,
11  //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  //See the License for the specific language governing permissions and
13  //limitations under the License.
14  //========================================================================
15  
16  package org.mortbay.jetty.handler;
17  
18  
19  import org.mortbay.component.AbstractLifeCycle;
20  import org.mortbay.jetty.Handler;
21  import org.mortbay.jetty.Server;
22  import org.mortbay.log.Log;
23  
24  
25  /* ------------------------------------------------------------ */
26  /** AbstractHandler.
27   * @author gregw
28   *
29   */
30  public abstract class AbstractHandler extends AbstractLifeCycle implements Handler
31  {
32      protected String _string;
33      private Server _server;
34      
35      /* ------------------------------------------------------------ */
36      /**
37       * 
38       */
39      public AbstractHandler()
40      {
41      }
42  
43      /* ------------------------------------------------------------ */
44      /* 
45       * @see org.mortbay.thread.LifeCycle#start()
46       */
47      protected void doStart() throws Exception
48      {
49          Log.debug("starting {}",this);
50      }
51  
52      /* ------------------------------------------------------------ */
53      /* 
54       * @see org.mortbay.thread.LifeCycle#stop()
55       */
56      protected void doStop() throws Exception
57      {
58          Log.debug("stopping {}",this);
59      }
60  
61      /* ------------------------------------------------------------ */
62      public String toString()
63      {
64          if (_string==null)
65          {
66              _string=super.toString();
67              _string=_string.substring(_string.lastIndexOf('.')+1);
68          }
69          return _string;
70      }
71  
72      /* ------------------------------------------------------------ */
73      public void setServer(Server server)
74      {
75          Server old_server=_server;
76          if (old_server!=null && old_server!=server)
77              old_server.getContainer().removeBean(this);
78          _server=server;
79          if (_server!=null && _server!=old_server)
80              _server.getContainer().addBean(this);
81      }
82  
83      /* ------------------------------------------------------------ */
84      public Server getServer()
85      {
86          return _server;
87      }
88  
89  
90      /* ------------------------------------------------------------ */
91      public void destroy()
92      {
93          if (!isStopped())
94              throw new IllegalStateException("!STOPPED");
95          if (_server!=null)
96              _server.getContainer().removeBean(this);
97      }
98  
99  }