Class IntrospectedCodeClass

  • All Implemented Interfaces:
    CodeClass

    public class IntrospectedCodeClass
    extends java.lang.Object
    implements CodeClass
    CodeClass instances that represent normal Java Class objects.

    Instances of IntrospectedCodeClass are generated using the static factory methods named forClass(). These methods ensure that the same IntrospectedCodeClass instance is returned for multiple invocations with the same argument.

    Author:
    Thomas Down, Matthew Pocock
    • Method Detail

      • forClass

        public static CodeClass forClass​(java.lang.Class c)
        Get the CodeClass for a Java Class.
        Parameters:
        c - the Java Class to reflect
        Returns:
        a CodeClass representing the class
      • forClass

        public static CodeClass forClass​(java.lang.String name)
                                  throws java.lang.ClassNotFoundException
        Get the CodeClass for a Java class name.
        Parameters:
        name - the Java class name to reflect
        Returns:
        a CodeClass representing the class
        Throws:
        java.lang.ClassNotFoundException
      • forMethod

        public static CodeMethod forMethod​(java.lang.reflect.Method method)
      • getName

        public java.lang.String getName()
        Specified by:
        getName in interface CodeClass
      • getJName

        public java.lang.String getJName()
        Specified by:
        getJName in interface CodeClass
      • getDescriptor

        public java.lang.String getDescriptor()
        Specified by:
        getDescriptor in interface CodeClass
      • getModifiers

        public int getModifiers()
        Description copied from interface: CodeClass
        Get the modifiers associated with the class.
        Specified by:
        getModifiers in interface CodeClass
        Returns:
        the modifier integer
      • getMethods

        public java.util.Set getMethods()
        Description copied from interface: CodeClass
        Get all methods declared by this class and its super classes, removing all super class methods that are over ridden.

        This should return methods, regardless of their accessability.

        Specified by:
        getMethods in interface CodeClass
        Returns:
        a Set containing all methods
      • getFieldByName

        public CodeField getFieldByName​(java.lang.String name)
                                 throws java.lang.NoSuchFieldException
        Description copied from interface: CodeClass
        Get a field by its name.
        Specified by:
        getFieldByName in interface CodeClass
        Parameters:
        name - the field name
        Returns:
        a CodeField representing the field
        Throws:
        java.lang.NoSuchFieldException - if there is no field by that name accessible through this class
      • getFields

        public java.util.Set getFields()
        Description copied from interface: CodeClass
        Get all fields accessible through this class.
        Specified by:
        getFields in interface CodeClass
        Returns:
        a Set of all accessible fields
      • getMethodsByName

        public java.util.Set getMethodsByName​(java.lang.String name)
        Description copied from interface: CodeClass
        Get the name of all methods that could be invoked through this class with a given name.
        Specified by:
        getMethodsByName in interface CodeClass
        Parameters:
        name - the name of the method
        Returns:
        a Set of CodeMethod instances with that name
      • getMethod

        public CodeMethod getMethod​(java.lang.String name,
                                    CodeClass[] args)
                             throws java.lang.NoSuchMethodException
        Description copied from interface: CodeClass
        Get a method by name and argument list.
        Specified by:
        getMethod in interface CodeClass
        Parameters:
        name - the name of the method
        args - the arguments it takes
        Returns:
        a matching method
        Throws:
        java.lang.NoSuchMethodException - if there is no maching method
      • getConstructor

        public CodeMethod getConstructor​(CodeClass[] args)
                                  throws java.lang.NoSuchMethodException
        Description copied from interface: CodeClass
        Get a constructor by argument list.
        Specified by:
        getConstructor in interface CodeClass
        Parameters:
        args - the arguments it takes
        Returns:
        a matching constructor
        Throws:
        java.lang.NoSuchMethodException - if there is no matching constructor
      • isPrimitive

        public boolean isPrimitive()
        Description copied from interface: CodeClass
        Discover if the class represents a primitive type.
        Specified by:
        isPrimitive in interface CodeClass
        Returns:
        true if the class represents a primative type
      • isArray

        public boolean isArray()
        Description copied from interface: CodeClass
        Discover if the class is an array type.
        Specified by:
        isArray in interface CodeClass
        Returns:
        true if the class is an array type
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object