View Javadoc

1   //========================================================================
2   //$Id: RunAsCollection.java 1604 2007-02-15 12:49:23Z janb $
3   //Copyright 2006 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.plus.annotation;
17  
18  import java.util.HashMap;
19  
20  import org.mortbay.jetty.servlet.ServletHolder;
21  import org.mortbay.log.Log;
22  
23  
24  /**
25   * RunAsCollection
26   *
27   *
28   */
29  public class RunAsCollection
30  {
31      private HashMap _runAsMap = new HashMap();//map of classname to run-as
32      
33      
34      public void add (RunAs runAs)
35      {
36          if ((runAs==null) || (runAs.getTargetClass()==null)) 
37              return;
38          
39          if (Log.isDebugEnabled())
40              Log.debug("Adding run-as for class="+runAs.getTargetClass());
41          _runAsMap.put(runAs.getTargetClass().getName(), runAs);
42      }
43  
44      
45      public void setRunAs (Object o)
46      {
47          if (o==null)
48              return;
49          
50          if (!(o instanceof ServletHolder))
51              return;
52  
53          ServletHolder holder = (ServletHolder)o;
54  
55          RunAs runAs = (RunAs)_runAsMap.get(holder.getClassName());
56          if (runAs == null)
57              return;
58  
59          runAs.setRunAs(holder); 
60      }
61  
62  }