- java.lang.Object
-
- kala.compress.harmony.unpack200.IcTuple
-
public class IcTuple extends java.lang.ObjectAn IcTuple is the set of information that describes an inner class. C is the fully qualified class name
F is the flags
C2 is the outer class name, or null if it can be inferred from C
N is the inner class name, or null if it can be inferred from C
-
-
Field Summary
Fields Modifier and Type Field Description private booleananonymousprotected java.lang.StringCprotected java.lang.StringC2private intc2Indexprivate intcachedHashCodeprivate intcachedOuterClassIndexprivate java.lang.StringcachedOuterClassStringprivate java.lang.StringcachedSimpleClassNameprivate intcachedSimpleClassNameIndexprivate intcIndex(package private) static IcTuple[]EMPTY_ARRAYprivate static java.lang.String[]EMPTY_STRING_ARRAYprotected intFprivate booleanhashCodeComputedprivate booleaninitializedprivate booleanmemberprotected java.lang.StringNstatic intNESTED_CLASS_FLAGprivate intnIndexprivate booleanouterIsAnonymousprivate booleanpredictOuterprivate booleanpredictSimpleprivate inttIndex
-
Constructor Summary
Constructors Constructor Description IcTuple(java.lang.String C, int F, java.lang.String C2, java.lang.String N, int cIndex, int c2Index, int nIndex, int tIndex)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private booleancomputeOuterIsAnonymous()booleanequals(java.lang.Object object)private voidgenerateHashCode()java.lang.StringgetC()java.lang.StringgetC2()intgetF()java.lang.StringgetN()intgetTupleIndex()inthashCode()private voidinitializeClassStrings()java.lang.String[]innerBreakAtDollar(java.lang.String className)Break the receiver into components at $ boundaries.private booleanisAllDigits(java.lang.String nameString)booleanisAnonymous()booleanisMember()booleannestedExplicitFlagSet()Answer true if the receiver's bit 16 is set (indicating that explicit outer class and name fields are set).booleannullSafeEquals(java.lang.String stringOne, java.lang.String stringTwo)intouterClassIndex()java.lang.StringouterClassString()Answer the outer class name for the receiver.booleanouterIsAnonymous()booleanpredicted()Answer true if the receiver is predicted; answer false if the receiver is specified explicitly in the outer and name fields.java.lang.StringsimpleClassName()Answer the inner class name for the receiver.intsimpleClassNameIndex()intthisClassIndex()java.lang.StringthisClassString()Answer the full name of the inner class represented by this tuple (including its outer component)java.lang.StringtoString()
-
-
-
Field Detail
-
EMPTY_STRING_ARRAY
private static final java.lang.String[] EMPTY_STRING_ARRAY
-
NESTED_CLASS_FLAG
public static final int NESTED_CLASS_FLAG
- See Also:
- Constant Field Values
-
EMPTY_ARRAY
static final IcTuple[] EMPTY_ARRAY
-
cIndex
private final int cIndex
-
c2Index
private final int c2Index
-
nIndex
private final int nIndex
-
tIndex
private final int tIndex
-
C
protected java.lang.String C
-
F
protected int F
-
C2
protected java.lang.String C2
-
N
protected java.lang.String N
-
predictSimple
private boolean predictSimple
-
predictOuter
private boolean predictOuter
-
cachedOuterClassString
private java.lang.String cachedOuterClassString
-
cachedSimpleClassName
private java.lang.String cachedSimpleClassName
-
initialized
private boolean initialized
-
anonymous
private boolean anonymous
-
outerIsAnonymous
private boolean outerIsAnonymous
-
member
private boolean member
-
cachedOuterClassIndex
private int cachedOuterClassIndex
-
cachedSimpleClassNameIndex
private int cachedSimpleClassNameIndex
-
hashCodeComputed
private boolean hashCodeComputed
-
cachedHashCode
private int cachedHashCode
-
-
Constructor Detail
-
IcTuple
public IcTuple(java.lang.String C, int F, java.lang.String C2, java.lang.String N, int cIndex, int c2Index, int nIndex, int tIndex)- Parameters:
C- TODOF- TODOC2- TODON- TODOcIndex- the index of C in cpClassc2Index- the index of C2 in cpClass, or -1 if C2 is nullnIndex- the index of N in cpUTF8, or -1 if N is nulltIndex- TODO
-
-
Method Detail
-
computeOuterIsAnonymous
private boolean computeOuterIsAnonymous()
-
equals
public boolean equals(java.lang.Object object)
- Overrides:
equalsin classjava.lang.Object
-
generateHashCode
private void generateHashCode()
-
getC
public java.lang.String getC()
-
getC2
public java.lang.String getC2()
-
getF
public int getF()
-
getN
public java.lang.String getN()
-
getTupleIndex
public int getTupleIndex()
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
initializeClassStrings
private void initializeClassStrings()
-
innerBreakAtDollar
public java.lang.String[] innerBreakAtDollar(java.lang.String className)
Break the receiver into components at $ boundaries.- Parameters:
className- TODO- Returns:
- TODO
-
isAllDigits
private boolean isAllDigits(java.lang.String nameString)
-
isAnonymous
public boolean isAnonymous()
-
isMember
public boolean isMember()
-
nestedExplicitFlagSet
public boolean nestedExplicitFlagSet()
Answer true if the receiver's bit 16 is set (indicating that explicit outer class and name fields are set).- Returns:
- boolean
-
nullSafeEquals
public boolean nullSafeEquals(java.lang.String stringOne, java.lang.String stringTwo)
-
outerClassIndex
public int outerClassIndex()
-
outerClassString
public java.lang.String outerClassString()
Answer the outer class name for the receiver. This may either be specified or inferred from inner class name.- Returns:
- String name of outer class
-
outerIsAnonymous
public boolean outerIsAnonymous()
-
predicted
public boolean predicted()
Answer true if the receiver is predicted; answer false if the receiver is specified explicitly in the outer and name fields.- Returns:
- true if the receiver is predicted; answer false if the receiver is specified explicitly in the outer and name fields.
-
simpleClassName
public java.lang.String simpleClassName()
Answer the inner class name for the receiver.- Returns:
- String name of inner class
-
simpleClassNameIndex
public int simpleClassNameIndex()
-
thisClassIndex
public int thisClassIndex()
-
thisClassString
public java.lang.String thisClassString()
Answer the full name of the inner class represented by this tuple (including its outer component)- Returns:
- String full name of inner class
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-