View Javadoc

1   /***************************************************************************************
2    * Copyright (c) Jonas Bonér, Alexandre Vasseur. All rights reserved.                 *
3    * http://aspectwerkz.codehaus.org                                                    *
4    * ---------------------------------------------------------------------------------- *
5    * The software in this package is published under the terms of the LGPL license      *
6    * a copy of which has been included with this distribution in the license.txt file.  *
7    **************************************************************************************/
8   package org.codehaus.aspectwerkz.annotation;
9   
10  import org.codehaus.aspectwerkz.util.SequencedHashMap;
11  import org.codehaus.aspectwerkz.aspect.AdviceType;
12  
13  import java.util.Map;
14  import java.util.Set;
15  
16  /***
17   * The advice annotation proxy base.
18   * 
19   * @author <a href="mailto:jboner@codehaus.org">Jonas Bonér </a>
20   * @author <a href="mailto:alex AT gnilux DOT com">Alexandre Vasseur </a>
21   */
22  public class AdviceAnnotationProxyBase extends UntypedAnnotationProxy implements ParameterizedAnnotationProxy {
23  
24      protected String m_pointcut;
25      protected AdviceType m_type;
26  
27      protected final Map m_argsTypeByName = new SequencedHashMap();
28  
29      public String pointcut() {
30          return m_pointcut;
31      }
32  
33      public void setValue(final String value) {
34          m_pointcut = value;
35      }
36  
37      public void addArgument(String argName, String className) {
38          m_argsTypeByName.put(argName, className);
39      }
40  
41      public Set getArgumentNames() {
42          return m_argsTypeByName.keySet();
43      }
44  
45      public String getArgumentType(String parameterName) {
46          return (String) m_argsTypeByName.get(parameterName);
47      }
48  
49      public AdviceType getType() {
50          return m_type;
51      }
52  }