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.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  }