KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > codehaus > aspectwerkz > definition > InterfaceIntroductionDefinition


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.definition;
9
10 import org.codehaus.aspectwerkz.expression.ExpressionInfo;
11
12 import java.util.ArrayList JavaDoc;
13 import java.util.List JavaDoc;
14
15 /**
16  * Holds the meta-data for the interface introductions. <p/>This definition holds only pure interface introduction.
17  *
18  * @author <a HREF="mailto:jboner@codehaus.org">Jonas Bonér </a>
19  * @author <a HREF="mailto:alex@gnilux.com">Alexandre Vasseur </a>
20  */

21 public class InterfaceIntroductionDefinition {
22     /**
23      * The name of the interface introduction.
24      */

25     protected final String JavaDoc m_name;
26
27     /**
28      * The introduction expressions.
29      */

30     protected ExpressionInfo[] m_expressionInfos = new ExpressionInfo[]{};
31
32     /**
33      * The attribute for the introduction.
34      */

35     protected String JavaDoc m_attribute = "";
36
37     /**
38      * The interface classes name.
39      */

40     protected List JavaDoc m_interfaceClassNames = new ArrayList JavaDoc();
41
42     /**
43      * Creates a new introduction meta-data instance.
44      *
45      * @param name the name of the expressionInfo
46      * @param interfaceClassName the class name of the interface
47      */

48     public InterfaceIntroductionDefinition(final String JavaDoc name, final String JavaDoc interfaceClassName) {
49         if (name == null) {
50             throw new IllegalArgumentException JavaDoc("name can not be null");
51         }
52         if (interfaceClassName == null) {
53             throw new IllegalArgumentException JavaDoc("interface class name can not be null");
54         }
55         m_name = name;
56         m_interfaceClassNames.add(interfaceClassName);
57     }
58
59     /**
60      * Returns the name of the introduction.
61      *
62      * @return the name
63      */

64     public String JavaDoc getName() {
65         return m_name;
66     }
67
68     /**
69      * Returns the expressions.
70      *
71      * @return the expressions array
72      */

73     public ExpressionInfo[] getExpressionInfos() {
74         return m_expressionInfos;
75     }
76
77     /**
78      * Returns the class name of the interface.
79      *
80      * @return the class name of the interface
81      */

82     public String JavaDoc getInterfaceClassName() {
83         return (String JavaDoc) m_interfaceClassNames.get(0);
84     }
85
86     /**
87      * Returns the class name of the interface.
88      *
89      * @return the class name of the interface
90      */

91     public List JavaDoc getInterfaceClassNames() {
92         return m_interfaceClassNames;
93     }
94
95     /**
96      * Returns the attribute.
97      *
98      * @return the attribute
99      */

100     public String JavaDoc getAttribute() {
101         return m_attribute;
102     }
103
104     /**
105      * Sets the attribute.
106      *
107      * @param attribute the attribute
108      */

109     public void setAttribute(final String JavaDoc attribute) {
110         m_attribute = attribute;
111     }
112
113     /**
114      * Adds a new expression info.
115      *
116      * @param expression a new expression info
117      */

118     public void addExpressionInfo(final ExpressionInfo expression) {
119         final ExpressionInfo[] tmpExpressions = new ExpressionInfo[m_expressionInfos.length + 1];
120         java.lang.System.arraycopy(m_expressionInfos, 0, tmpExpressions, 0, m_expressionInfos.length);
121         tmpExpressions[m_expressionInfos.length] = expression;
122         m_expressionInfos = new ExpressionInfo[m_expressionInfos.length + 1];
123         java.lang.System.arraycopy(tmpExpressions, 0, m_expressionInfos, 0, tmpExpressions.length);
124     }
125
126     /**
127      * Adds an array with new expression infos.
128      *
129      * @param expressions an array with new expression infos
130      */

131     public void addExpressionInfos(final ExpressionInfo[] expressions) {
132         final ExpressionInfo[] tmpExpressions = new ExpressionInfo[m_expressionInfos.length + expressions.length];
133         java.lang.System.arraycopy(m_expressionInfos, 0, tmpExpressions, 0, m_expressionInfos.length);
134         java.lang.System.arraycopy(expressions, 0, tmpExpressions, m_expressionInfos.length, expressions.length);
135         m_expressionInfos = new ExpressionInfo[m_expressionInfos.length + expressions.length];
136         java.lang.System.arraycopy(tmpExpressions, 0, m_expressionInfos, 0, tmpExpressions.length);
137     }
138 }
Popular Tags