Package serp.bytecode

Class State

  • Direct Known Subclasses:
    ArrayState, ObjectState, PrimitiveState

    class State
    extends java.lang.Object
    The State type is extended by various concrete types to change the behavior of a BCClass. All methods in this base implementation throw an UnsupportedOperationException
    • Field Detail

      • INVALID

        public static final State INVALID
        A singleton instance of this type that can be used to make a class invalid.
    • Constructor Detail

      • State

        State()
    • Method Detail

      • getMagic

        public int getMagic()
        Return the magic number of the bytecode class.
      • setMagic

        public void setMagic​(int magic)
        Set the magic number of the bytecode class.
      • getMajorVersion

        public int getMajorVersion()
        Return the major number of the bytecode class.
      • setMajorVersion

        public void setMajorVersion​(int major)
        Set the major version of the bytecode class.
      • getMinorVersion

        public int getMinorVersion()
        Return the minor number of the bytecode class.
      • setMinorVersion

        public void setMinorVersion​(int minor)
        Set the minor version of the bytecode class.
      • getAccessFlags

        public int getAccessFlags()
        Return the access flags of the bytecode class.
      • setAccessFlags

        public void setAccessFlags​(int access)
        Set the access flags of the bytecode class.
      • getIndex

        public int getIndex()
        Return the ConstantPool index of the ClassEntry for this class, or 0 if none.
      • getSuperclassIndex

        public int getSuperclassIndex()
        Return the ConstantPool index of the ClassEntry for the superclass of this class, or 0 if none.
      • setSuperclassIndex

        public void setSuperclassIndex​(int index)
        Set the ConstantPool index of the ClassEntry for the superclass of this class. Throws UnsupportedOperationException by default.
      • getInterfacesHolder

        public java.util.List getInterfacesHolder()
        Return the ConstantPool indexes of the ClassEntrys for the indexes of this class, or empty list if none. If the state does not support changing the interfaces, the returned list should be immutable.
      • getFieldsHolder

        public java.util.List getFieldsHolder()
        Return the BCFields of this class, or empty list if none. If the state does not support changing the fields, the returned list should be immutable.
      • getMethodsHolder

        public java.util.List getMethodsHolder()
        Return the BCMethods of this class, or empty list if none. If the state does not support changing the methods, the returned list should be immutable.
      • getAttributesHolder

        public java.util.Collection getAttributesHolder()
        Return the Attributes of this class, or empty list if none. If the state does not support changing the attributes, the returned list should be immutable.
      • getPool

        public ConstantPool getPool()
        Return the constant pool of the class.
      • getName

        public java.lang.String getName()
        Return the name of the class. The name should be in a form suitable for a Class.forName(java.lang.String) call.
      • getSuperclassName

        public java.lang.String getSuperclassName()
        Return the name of the superclass. The name should be in a form suitable for a Class.forName(java.lang.String) call, or null if none.
      • getComponentName

        public java.lang.String getComponentName()
        Return the name of the component type of this array, or null if not an array. The name should be in a form suitable for a Class.forName(java.lang.String) call.
      • isPrimitive

        public boolean isPrimitive()
        Return true if this class is a primitive.
      • isArray

        public boolean isArray()
        Return true if this class is an array.