soot.coffi
Class CONSTANT_Utf8_info

java.lang.Object
  |
  +--soot.coffi.cp_info
        |
        +--soot.coffi.CONSTANT_Utf8_info

public class CONSTANT_Utf8_info
extends soot.coffi.cp_info

A constant pool entry of type CONSTANT_Utf8; note this is not multithread safe. It is, however, immutable.

See Also:
cp_info

Field Summary
static byte CONSTANT_Class
           
static byte CONSTANT_Double
           
static byte CONSTANT_Fieldref
           
static byte CONSTANT_Float
           
static byte CONSTANT_Integer
           
static byte CONSTANT_InterfaceMethodref
           
static byte CONSTANT_Long
           
static byte CONSTANT_Methodref
           
static byte CONSTANT_NameAndType
           
static byte CONSTANT_String
           
static byte CONSTANT_Utf8
           
 byte tag
          One of the CONSTANT_* constants.
 
Constructor Summary
CONSTANT_Utf8_info(java.io.DataInputStream d)
          Constructor from a DataInputSream
 
Method Summary
 int compareTo(soot.coffi.cp_info cp)
          Compares this entry with another cp_info object; note that for Utf8 object it really doesn't matter whether they're in the same or a different constant pool, since they really do carry all their data.
 int compareTo(soot.coffi.cp_info[] constant_pool, soot.coffi.cp_info cp, soot.coffi.cp_info[] cp_constant_pool)
          Compares this entry with another cp_info object (which may reside in a different constant pool).
 java.lang.String convert()
          Converts internal representation into an actual String.
static int countParams(soot.coffi.cp_info[] constant_pool, int m)
          Counts the number of parameters of the given method.
 boolean equals(CONSTANT_Utf8_info cu)
          Answers whether this utf8 string is the same as a given one.
static java.lang.String fieldType(soot.coffi.cp_info[] constant_pool, int i)
          Returns the name of the field type of the given constant pool object.
 void fixConversion(java.lang.String rep)
          Fixes the actual String used to represent the internal representation.
static java.lang.String getClassname(soot.coffi.cp_info[] constant_pool, int i)
          Locates the name of the corresponding class, given the constant pool index of either a CONSTANT_Class, _Fieldref, Methodref or InterfaceMethodref.
static java.lang.String getName(soot.coffi.cp_info[] constant_pool, int i)
          Returns the name of the given constant pool object, assuming it is of type CONSTANT_NameAndType, _FieldRef, _Methodref or _InterfaceMethodref.
static java.lang.String getTypeDescr(soot.coffi.cp_info[] constant_pool, int i)
          Returns the type descriptor for the given constant pool object, which must be a CONSTANT_Utf8, CONSTANT_NameAndType, CONSTANT_Fieldref, CONSTANT_MethodRef, or CONSTANT_InterfaceMethodRef.
static long ints2long(long high, long low)
          Utility method, converts two integers into a single long.
 int length()
          Length in bytes of byte array.
static java.lang.String printBits(int i)
          Utility method, returns a String binary representation of the given integer.
static java.lang.String printBits(long i)
          Utility method, returns a String binary representation of the given long.
 int size()
          Returns the size of this cp_info object.
 java.lang.String toString(soot.coffi.cp_info[] constant_pool)
          Returns a String representation of this entry.
static byte[] toUtf8(java.lang.String s)
          Utility method; converts the given String into a utf8 encoded array of bytes.
 java.lang.String typeName()
          Returns a String description of what kind of entry this is.
 void writeBytes(java.io.DataOutputStream dd)
          For writing out the byte stream for this utf8 properly (incl size).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONSTANT_Utf8

public static final byte CONSTANT_Utf8

CONSTANT_Integer

public static final byte CONSTANT_Integer

CONSTANT_Float

public static final byte CONSTANT_Float

CONSTANT_Long

public static final byte CONSTANT_Long

CONSTANT_Double

public static final byte CONSTANT_Double

CONSTANT_Class

public static final byte CONSTANT_Class

CONSTANT_String

public static final byte CONSTANT_String

CONSTANT_Fieldref

public static final byte CONSTANT_Fieldref

CONSTANT_Methodref

public static final byte CONSTANT_Methodref

CONSTANT_InterfaceMethodref

public static final byte CONSTANT_InterfaceMethodref

CONSTANT_NameAndType

public static final byte CONSTANT_NameAndType

tag

public byte tag
One of the CONSTANT_* constants.
Constructor Detail

CONSTANT_Utf8_info

public CONSTANT_Utf8_info(java.io.DataInputStream d)
                   throws java.io.IOException
Constructor from a DataInputSream
Method Detail

writeBytes

public void writeBytes(java.io.DataOutputStream dd)
                throws java.io.IOException
For writing out the byte stream for this utf8 properly (incl size).

length

public int length()
Length in bytes of byte array.

size

public int size()
Returns the size of this cp_info object.
Overrides:
size in class soot.coffi.cp_info
Returns:
number of bytes occupied by this object.
See Also:
cp_info.size()

convert

public java.lang.String convert()
Converts internal representation into an actual String.
Returns:
String version of this utf8 object.

fixConversion

public void fixConversion(java.lang.String rep)
Fixes the actual String used to represent the internal representation. We must have rep == convert(); we verify hashCodes() to spot-check this. No user-visible effects.

equals

public boolean equals(CONSTANT_Utf8_info cu)
Answers whether this utf8 string is the same as a given one.
Parameters:
cu - utf8 object with which to compare.
Returns:
true if they are equal, false if they are not.

compareTo

public int compareTo(soot.coffi.cp_info[] constant_pool,
                     soot.coffi.cp_info cp,
                     soot.coffi.cp_info[] cp_constant_pool)
Compares this entry with another cp_info object (which may reside in a different constant pool).
Overrides:
compareTo in class soot.coffi.cp_info
Parameters:
constant_pool - constant pool of ClassFile for this.
cp - constant pool entry to compare against.
cp_constant_pool - constant pool of ClassFile for cp.
Returns:
a value <0, 0, or >0 indicating whether this is smaller, the same or larger than cp.
See Also:
cp_info.compareTo(soot.coffi.cp_info[], soot.coffi.cp_info, soot.coffi.cp_info[]), compareTo(cp_info)

compareTo

public int compareTo(soot.coffi.cp_info cp)
Compares this entry with another cp_info object; note that for Utf8 object it really doesn't matter whether they're in the same or a different constant pool, since they really do carry all their data.
Parameters:
cp - constant pool entry to compare against.
Returns:
a value <0, 0, or >0 indicating whether this is smaller, the same or larger than cp.
See Also:
cp_info.compareTo(soot.coffi.cp_info[], soot.coffi.cp_info, soot.coffi.cp_info[]), compareTo(cp_info[],cp_info,cp_info[])

toUtf8

public static byte[] toUtf8(java.lang.String s)
Utility method; converts the given String into a utf8 encoded array of bytes.
Parameters:
s - String to encode.
Returns:
array of bytes, utf8 encoded version of s.

toString

public java.lang.String toString(soot.coffi.cp_info[] constant_pool)
Returns a String representation of this entry.
Overrides:
toString in class soot.coffi.cp_info
Parameters:
constant_pool - constant pool of ClassFile.
Returns:
String representation of this entry.
See Also:
cp_info.toString(soot.coffi.cp_info[])

typeName

public java.lang.String typeName()
Returns a String description of what kind of entry this is.
Overrides:
typeName in class soot.coffi.cp_info
Returns:
the String "utf8".
See Also:
cp_info.typeName()

ints2long

public static long ints2long(long high,
                             long low)
Utility method, converts two integers into a single long.
Parameters:
high - upper 32 bits of the long.
low - lower 32 bits of the long.
Returns:
a long value composed from the two ints.

printBits

public static java.lang.String printBits(int i)
Utility method, returns a String binary representation of the given integer.
Parameters:
i - the integer in question.
Returns:
a String of 0's and 1's.
See Also:
cp_info.printBits(long)

printBits

public static java.lang.String printBits(long i)
Utility method, returns a String binary representation of the given long.
Parameters:
i - the long in question.
Returns:
a String of 0's and 1's.
See Also:
cp_info.printBits(int)

getClassname

public static java.lang.String getClassname(soot.coffi.cp_info[] constant_pool,
                                            int i)
Locates the name of the corresponding class, given the constant pool index of either a CONSTANT_Class, _Fieldref, Methodref or InterfaceMethodref.
Parameters:
constant_pool - constant pool of ClassFile.
i - index of cp_info entry in question.
Returns:
name of the associated class.

getName

public static java.lang.String getName(soot.coffi.cp_info[] constant_pool,
                                       int i)
Returns the name of the given constant pool object, assuming it is of type CONSTANT_NameAndType, _FieldRef, _Methodref or _InterfaceMethodref.
Parameters:
constant_pool - constant pool of ClassFile.
i - index of cp_info entry in question.
Returns:
name of the associated object.
See Also:
CONSTANT_Utf8_info

countParams

public static int countParams(soot.coffi.cp_info[] constant_pool,
                              int m)
Counts the number of parameters of the given method.
Parameters:
constant_pool - constant pool of ClassFile.
m - a constant pool index as accepted by getTypeDescr.
Returns:
the number of parameters.
See Also:
cp_info.getTypeDescr(soot.coffi.cp_info[], int)

getTypeDescr

public static java.lang.String getTypeDescr(soot.coffi.cp_info[] constant_pool,
                                            int i)
Returns the type descriptor for the given constant pool object, which must be a CONSTANT_Utf8, CONSTANT_NameAndType, CONSTANT_Fieldref, CONSTANT_MethodRef, or CONSTANT_InterfaceMethodRef.
Parameters:
constant_pool - constant pool of ClassFile.
i - a constant pool index for an entry of type CONSTANT_Utf8, CONSTANT_NameAndType, CONSTANT_MethodRef, or CONSTANT_InterfaceMethodRef.
Returns:
the type descriptor.
See Also:
CONSTANT_Utf8_info

fieldType

public static java.lang.String fieldType(soot.coffi.cp_info[] constant_pool,
                                         int i)
Returns the name of the field type of the given constant pool object.
Parameters:
constant_pool - constant pool of ClassFile.
i - a constant pool index for an entry of type CONSTANT_Utf8, CONSTANT_NameAndType, or CONSTANT_FieldRef.
Returns:
the type of the field.
See Also:
CONSTANT_Utf8_info, cp_info.getTypeDescr(soot.coffi.cp_info[], int)