mjc

org.multijava.mjc
Class CMember

java.lang.Object
  extended byorg.multijava.util.Utils
      extended byorg.multijava.mjc.CMember
All Implemented Interfaces:
Cloneable, Constants, Constants
Direct Known Subclasses:
CClass, CField, CMethod

public class CMember
extends Utils
implements Constants

This class represents a member of a class or compilation unit. It is primarily just a data structure, apart from methods for generating the qualified name and for determining whether the member is accessible from some class. The classes in this hierarchy are used to track the signatures of the members declared in *.java files being compiled and *.class files that are read as needed. The subclasses also include methods for code generation.

See Also:
CMember, CField, CMethod, CClass

Field Summary
private  MemberAccess accessControl
           
private  boolean deprecated
           
private  String ident
           
 
Fields inherited from class org.multijava.util.Utils
DBG_LEVEL_HIGH, DBG_LEVEL_LOW, DBG_LEVEL_NO
 
Fields inherited from interface org.multijava.mjc.Constants
ACC_MODIFIER_FLAGS_MASK, ACC_NON_NULL, ACC_NON_NULL_BY_DEFAULT, ACC_NULLABLE, ACC_NULLABLE_BY_DEFAULT, ACC_PURE, ACCESS_FLAG_ARRAY, ACCESS_FLAG_NAMES, AMID_JAVA_MATH, AMID_MAX, AMID_SAFE_MATH, CMP_VERSION, IMPLICITLY_NON_NULL, JAV_ASSERTION_ERROR, JAV_CLASS, JAV_CLASSLOADER, JAV_CLASSNOTFOUND_EXCEPTION, JAV_CLONE, JAV_CLONEABLE, JAV_CONSTRUCTOR, JAV_ERROR, JAV_EXCEPTION, JAV_INIT, JAV_LENGTH, JAV_NAME_SEPARATOR, JAV_NOCLASSDEFFOUND_ERROR, JAV_OBJECT, JAV_OUTER_THIS, JAV_RMJ_RUNTIME_EXCEPTION, JAV_RUNTIME, JAV_RUNTIME_EXCEPTION, JAV_SERIALIZABLE, JAV_STATIC_INIT, JAV_STRING, JAV_STRINGBUFFER, JAV_SUPER, JAV_THIS, JAV_THROWABLE, MJ_ANCHOR, NULLITY_MODS, OPE_BAND, OPE_BNOT, OPE_BOR, OPE_BSR, OPE_BXOR, OPE_EQ, OPE_GE, OPE_GT, OPE_LAND, OPE_LE, OPE_LNOT, OPE_LOR, OPE_LT, OPE_MINUS, OPE_NE, OPE_PERCENT, OPE_PLUS, OPE_POSTDEC, OPE_POSTINC, OPE_PREDEC, OPE_PREINC, OPE_SIMPLE, OPE_SL, OPE_SLASH, OPE_SR, OPE_STAR, TID_ARRAY, TID_BOOLEAN, TID_BYTE, TID_CHAR, TID_CLASS, TID_DOUBLE, TID_FLOAT, TID_INT, TID_LONG, TID_MAX, TID_SHORT, TID_VOID, UNIV_ARRAY_TMP, UNIV_TMP
 
Fields inherited from interface org.multijava.util.classfile.Constants
ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VOLATILE, ATT_ANCHOR, ATT_BRIDGE, ATT_CODE, ATT_CONSTANTVALUE, ATT_DEPRECATED, ATT_DISPATCHER, ATT_EXCEPTIONS, ATT_GENERIC, ATT_GENERIC_FUNCTIONS, ATT_INNERCLASSES, ATT_LINENUMBERTABLE, ATT_LOCALVARIABLETABLE, ATT_MM_BODY, ATT_REDIRECTOR, ATT_RMJ_GLUE, ATT_RMJ_SIGNATURE, ATT_RUNTIME_VISIBLE_ANNOTATIONS, ATT_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS, ATT_SIGNATURE, ATT_SOURCEFILE, ATT_SYNTHETIC, ATT_UNIVERSE_FIELD, ATT_UNIVERSE_METHOD, ATT_UNIVERSE_VERSION, CST_CLASS, CST_DOUBLE, CST_FIELD, CST_FLOAT, CST_INTEGER, CST_INTERFACEMETHOD, CST_LONG, CST_METHOD, CST_NAMEANDTYPE, CST_STRING, CST_UTF8, ENV_DEBUG_MODE, ENV_USE_CACHE, JAVA_MAGIC, JAVA_MAJOR, JAVA_MINOR, MAX_CODE_PER_METHOD, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_dup_x1, opc_dup_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_invokeinterface, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc2_w, opc_ldc_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_wide, opc_xxxunusedxxx, POO_ASCII_CONSTANT, POO_CLASS_CONSTANT, POO_DOUBLE_CONSTANT, POO_FLOAT_CONSTANT, POO_INTEGER_CONSTANT, POO_LONG_CONSTANT, POO_NAT_CONSTANT, POO_REF_CONSTANT, POO_STRING_CONSTANT, TYP_ADDRESS, TYP_DOUBLE, TYP_FLOAT, TYP_INT, TYP_LONG, TYP_REFERENCE, TYP_VOID
 
Constructor Summary
CMember(MemberAccess accessControl, String ident, boolean deprecated)
          Constructs a top-level member export
 
Method Summary
 MemberAccess access()
           
 void addModifiers(long modifiers)
          Add (bit or) to the modifiers of this member.
 boolean deprecated()
          Indicates if this member is deprecated.
 CClass getCClass()
           
 CCompilationUnit getCCompilationUnit()
          Returns the compilation unit that hosts this member.
 CField getField()
           
 String getIdent()
           
 String getJavaName()
           
 CMethod getMethod()
           
 String getOwnerName()
           
 String getQualNameWithSeparator(char c)
           
 boolean hasDefaultAccess()
           
 boolean hasProtectedVisibilityIn(CMemberHost from)
          Indicates whether this member is accessible from the given host when this member has protected visibility.
 CMemberHost host()
          Returns the host of this member's declaration, which is the same value returned by owner() unless this is a top-level declaration.
 String ident()
           
 boolean isAccessibleFrom(CMemberHost from)
          Indicates whether this is accessible from the given host.
 boolean isDeclaredNonNull()
           
 boolean isDeprecated()
           
 boolean isFinal()
           
 boolean isLocalTo(CMemberHost from)
          Indicates whether the declaration of this member is local to the given host.
 boolean isPrivate()
           
 boolean isProtected()
           
 boolean isPublic()
           
 boolean isStatic()
           
 long modifiers()
           
 CClass owner()
          Returns the owner of this member or null if this is a top-level class declaration.
 String qualifiedName()
           
 void setModifiers(long modifiers)
          Sets the modifiers of this member
 
Methods inherited from class org.multijava.util.Utils
assertTrue, assertTrue, combineArrays, escapeString, escapeString, fail, fail, getFilePath, hasFlag, hasOtherFlags, parsePathParts, relativePathTo, splitQualifiedName, splitQualifiedName, stripJavaModifiers, stripNonJavaModifiers, stripPrivateModifier, unescapeString, vectorToArray, vectorToIntArray
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ident

private String ident

deprecated

private boolean deprecated

accessControl

private MemberAccess accessControl
Constructor Detail

CMember

public CMember(MemberAccess accessControl,
               String ident,
               boolean deprecated)
Constructs a top-level member export

Parameters:
accessControl - the owner, host, and modifiers for this member
ident - the ident of this member
deprecated - is this member deprecated
Method Detail

owner

public CClass owner()
Returns the owner of this member or null if this is a top-level class declaration.

Returns:
the class that owns this member

host

public CMemberHost host()
Returns the host of this member's declaration, which is the same value returned by owner() unless this is a top-level declaration.

Returns:
the host of this member's declaration

ident

public String ident()
Returns:
the ident of this method

getIdent

public String getIdent()

qualifiedName

public String qualifiedName()
Returns:
the fully qualified name of this member

getOwnerName

public String getOwnerName()
Returns:
the fully qualified name of this member's owner

getJavaName

public String getJavaName()
Returns:
the fully qualified name of this member

getQualNameWithSeparator

public String getQualNameWithSeparator(char c)
Returns:
the fully qualified name of this member with the given character as the separator

modifiers

public long modifiers()
Returns:
the modifiers of this member

addModifiers

public void addModifiers(long modifiers)
Add (bit or) to the modifiers of this member.


setModifiers

public void setModifiers(long modifiers)
Sets the modifiers of this member


deprecated

public boolean deprecated()
Indicates if this member is deprecated.


getField

public CField getField()
Returns:
the interface

getMethod

public CMethod getMethod()
Returns:
the interface

getCClass

public CClass getCClass()
Returns:
the interface

isStatic

public boolean isStatic()
Returns:
true if this member is static

isPublic

public boolean isPublic()
Returns:
true if this member is public

isProtected

public boolean isProtected()
Returns:
true if this member is protected

isPrivate

public boolean isPrivate()
Returns:
true if this member is private

hasDefaultAccess

public boolean hasDefaultAccess()

isFinal

public boolean isFinal()
Returns:
true if this member is final

isDeclaredNonNull

public boolean isDeclaredNonNull()

isDeprecated

public boolean isDeprecated()
Returns:
true if this member is deprecated

isLocalTo

public boolean isLocalTo(CMemberHost from)
Indicates whether the declaration of this member is local to the given host. There are two cases:
  1. If the given host is not a compilation unit, then this is local to the given host if the declaration of this appears in the same compilation unit in which the declaration of the given host appears.
  2. If the given host is a compilation unit, then this is local to the given host if the declaration of this appears within the given host.

Parameters:
from - the given host
Returns:
desc

isAccessibleFrom

public boolean isAccessibleFrom(CMemberHost from)
Indicates whether this is accessible from the given host.

Parameters:
from - the host that wants access
Returns:
true iff the given host is allowed access to this member

hasProtectedVisibilityIn

public boolean hasProtectedVisibilityIn(CMemberHost from)
Indicates whether this member is accessible from the given host when this member has protected visibility.

Parameters:
from - the host that wants access
Returns:
true iff the given host is allowed access to this member

getCCompilationUnit

public CCompilationUnit getCCompilationUnit()
Returns the compilation unit that hosts this member.


access

public MemberAccess access()

mjc

mjc is Copyright (C) 2000-2004 by Iowa State University and is distributed under the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. mjc is based in part on the Kopi project Copyright (C) 1990-99 DMS Decision Management Systems Ges.m.b.H.