Class ClassItem


  • public class ClassItem
    extends Object
    Wrapper for field or method information. Provides the information needed for access to either existing or added methods in existing classes.
    Author:
    Dennis M. Sosnoski
    • Constructor Detail

      • ClassItem

        public ClassItem​(String name,
                         ClassFile cf,
                         org.apache.bcel.classfile.FieldOrMethod item)
        Constructor. Builds a wrapper for an item based on an existing field or method.
        Parameters:
        name - field or method name
        cf - owning class information
        item - field or method information
    • Method Detail

      • getClassFile

        public ClassFile getClassFile()
        Get owning class information.
        Returns:
        owning class information
      • getName

        public String getName()
        Get item name.
        Returns:
        item name
      • getFullName

        public String getFullName()
        Get fully-qualified class and method name.
        Returns:
        fully-qualified class and method name
      • getTypeName

        public String getTypeName()
        Get item type as fully qualified class name.
        Returns:
        item type name
      • getArgumentCount

        public int getArgumentCount()
        Get number of arguments for method.
        Returns:
        argument count for method, or zero if not a method
      • getArgumentType

        public String getArgumentType​(int index)
        Get argument type as fully qualified class name.
        Parameters:
        index - argument number
        Returns:
        argument type name
      • getParameterName

        public String getParameterName​(int index)
        Get method parameter name.
        Parameters:
        index - parameter index
        Returns:
        parameter name
      • getArgumentTypes

        public String[] getArgumentTypes()
        Get argument types as array of fully qualified class names.
        Returns:
        array of argument types
      • getAccessFlags

        public int getAccessFlags()
        Get access flags.
        Returns:
        flags for access type of field or method
      • setAccessFlags

        public void setAccessFlags​(int flags)
        Set access flags.
        Parameters:
        flags - access flags for field or method
      • makeAccessible

        public void makeAccessible​(ClassFile src)
        Make accessible item. Check if this field or method is accessible from another class, and if not decreases the access restrictions to make it accessible.
        Parameters:
        src - class file for required access
      • isStatic

        public boolean isStatic()
        Check if item is a static.
        Returns:
        true if a static, false if member
      • getSignature

        public String getSignature()
        Get method signature.
        Returns:
        encoded method signature
      • isMethod

        public boolean isMethod()
        Check if item is a method.
        Returns:
        true if a method, false if a field
      • isInitializer

        public boolean isInitializer()
        Check if item is an initializer.
        Returns:
        true if an initializer, false if a field or normal method
      • getExceptions

        public String[] getExceptions()
        Get names of exceptions thrown by method.
        Returns:
        array of exceptions thrown by method, or null if a field
      • getGenericsSignature

        public String getGenericsSignature()
        Get the generics signature information for item.
        Returns:
        generics signature (null if none)
      • isPrimitive

        public static boolean isPrimitive​(String type)
        Check if type is a primitive.
        Parameters:
        type - to check
        Returns:
        true if a primitive, false if not
      • getPrimitiveSignature

        public static String getPrimitiveSignature​(String type)
        Get the signature for a primitive.
        Parameters:
        type - to check
        Returns:
        signature for a primitive type
      • getParametersFromSignature

        public static String[] getParametersFromSignature​(String sig)
        Get parameter type names from method signature.
        Parameters:
        sig - method signature to be decoded
        Returns:
        array of argument type names
      • getTypeFromSignature

        public static String getTypeFromSignature​(String sig)
        Get return type names from method signature.
        Parameters:
        sig - method signature to be decoded
        Returns:
        return type name
      • typeFromName

        public static org.apache.bcel.generic.Type typeFromName​(String name)
        Create type from name.
        Parameters:
        name - fully qualified type name
        Returns:
        corresponding type
      • findVirtualMethod

        public static ClassItem findVirtualMethod​(String name,
                                                  String[] sigs)
                                           throws org.jibx.runtime.JiBXException
        Get virtual method by fully qualified name. This splits the class name from the method name, finds the class, and then tries to find a matching method name in that class or a superclass.
        Parameters:
        name - fully qualified class and method name
        sigs - possible method signatures
        Returns:
        information for the method, or null if not found
        Throws:
        org.jibx.runtime.JiBXException - if configuration error
      • findStaticMethod

        public static ClassItem findStaticMethod​(String name,
                                                 String[] sigs)
                                          throws org.jibx.runtime.JiBXException
        Get static method by fully qualified name. This splits the class name from the method name, finds the class, and then tries to find a matching method name in that class.
        Parameters:
        name - fully qualified class and method name
        sigs - possible method signatures
        Returns:
        information for the method, or null if not found
        Throws:
        org.jibx.runtime.JiBXException - if configuration error
      • getSignatureVariants

        public static String[] getSignatureVariants​(String name)
                                             throws org.jibx.runtime.JiBXException
        Get all variant signatures for a fully qualified class name. The returned array gives all signatures (for interfaces or classes) which instances of the class can match.
        Parameters:
        name - fully qualified class name
        Returns:
        possible signature variations for instances of the class
        Throws:
        org.jibx.runtime.JiBXException - if configuration error
      • isAssignable

        public static boolean isAssignable​(String from,
                                           String to)
                                    throws org.jibx.runtime.JiBXException
        Check if a value of one type can be directly assigned to another type. This is basically the equivalent of the instanceof operator, but with application to primitive types as well as object types.
        Parameters:
        from - fully qualified class name of initial type
        to - fully qualified class name of assignment type
        Returns:
        true if assignable, false if not
        Throws:
        org.jibx.runtime.JiBXException - if configuration error