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.reflect.impl.java;
9
10 import org.codehaus.aspectwerkz.reflect.ClassInfo;
11 import org.codehaus.aspectwerkz.reflect.MemberInfo;
12
13 import java.lang.reflect.Member;
14 import java.util.List;
15
16 /***
17 * @author <a href="mailto:jboner@codehaus.org">Jonas BonŽr </a>
18 */
19 public abstract class JavaMemberInfo implements MemberInfo {
20 /***
21 * The member.
22 */
23 protected final Member m_member;
24
25 /***
26 * The declaring type.
27 */
28 protected final ClassInfo m_declaringType;
29
30 /***
31 * The attributes.
32 */
33 protected List m_annotations = null;
34
35 /***
36 * The class info repository.
37 */
38 protected final JavaClassInfoRepository m_classInfoRepository;
39
40 /***
41 * Creates a new member meta data instance.
42 *
43 * @param member
44 * @param declaringType
45 */
46 JavaMemberInfo(final Member member, final JavaClassInfo declaringType) {
47 if (member == null) {
48 throw new IllegalArgumentException("member can not be null");
49 }
50 if (declaringType == null) {
51 throw new IllegalArgumentException("declaring type can not be null");
52 }
53 m_member = member;
54 m_declaringType = declaringType;
55 m_classInfoRepository = JavaClassInfoRepository.getRepository(member.getDeclaringClass().getClassLoader());
56 }
57
58 /***
59 * Returns the name.
60 *
61 * @return the name
62 */
63 public String getName() {
64 return m_member.getName();
65 }
66
67 /***
68 * Returns the modifiers.
69 *
70 * @return the modifiers
71 */
72 public int getModifiers() {
73 return m_member.getModifiers();
74 }
75
76 /***
77 * Returns the declaring type.
78 *
79 * @return the declaring type
80 */
81 public ClassInfo getDeclaringType() {
82 return m_declaringType;
83 }
84 }