/************************************************************************************** * Copyright (c) Jonas Bon�r, Alexandre Vasseur. All rights reserved. * * http://aspectwerkz.codehaus.org * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the LGPL license * * a copy of which has been included with this distribution in the license.txt file. * **************************************************************************************/ package org.codehaus.aspectwerkz.reflect.impl.java; import org.codehaus.aspectwerkz.reflect.ClassInfo; import org.codehaus.aspectwerkz.reflect.MemberInfo; import java.lang.reflect.Member; import java.util.List; /** * @author <a href="mailto:jboner@codehaus.org">Jonas Bon�r </a> */ public abstract class JavaMemberInfo implements MemberInfo { /** * The member. */ protected final Member m_member; /** * The declaring type. */ protected final ClassInfo m_declaringType; /** * The attributes. */ protected List m_annotations = null; /** * The class info repository. */ protected final JavaClassInfoRepository m_classInfoRepository; /** * Creates a new member meta data instance. * * @param member * @param declaringType */ JavaMemberInfo(final Member member, final JavaClassInfo declaringType) { if (member == null) { throw new IllegalArgumentException("member can not be null"); } if (declaringType == null) { throw new IllegalArgumentException("declaring type can not be null"); } m_member = member; m_declaringType = declaringType; m_classInfoRepository = JavaClassInfoRepository.getRepository(member.getDeclaringClass().getClassLoader()); } /** * Returns the name. * * @return the name */ public String getName() { return m_member.getName(); } /** * Returns the modifiers. * * @return the modifiers */ public int getModifiers() { return m_member.getModifiers(); } /** * Returns the declaring type. * * @return the declaring type */ public ClassInfo getDeclaringType() { return m_declaringType; } }