Class JDefinedClass

    • Field Detail

      • metadata

        public Object metadata
        Client-app spcific metadata associated with this user-created class.
    • Method Detail

      • isAnonymous

        public final boolean isAnonymous()
        Returns true if this is an anonymous class.
      • _extends

        public JDefinedClass _extends​(JClass superClass)
        This class extends the specifed class.
        Parameters:
        superClass - Superclass for this class
        Returns:
        This class
      • _extends

        public JClass _extends()
        Returns the class extended by this class.
        Specified by:
        _extends in class JClass
        Returns:
        Returns the JClass representing the superclass of the entity (class or interface) represented by this JClass. Even if no super class is given explicitly or this JClass is not a class, this method still returns JClass for Object. If this JClass represents Object, return null.
      • _implements

        public JDefinedClass _implements​(JClass iface)
        This class implements the specifed interface.
        Parameters:
        iface - Interface that this class implements
        Returns:
        This class
      • _implements

        public Iterator<JClass> _implements()
        Returns an iterator that walks the nested classes defined in this class.
        Specified by:
        _implements in class JClass
        Returns:
        A non-null valid iterator that iterates all JClass objects that represents those interfaces implemented by this object.
      • name

        public String name()
        JClass name accessor.

        For example, for java.util.List, this method returns "List""

        Specified by:
        name in class JClass
        Returns:
        Name of this class
      • enumConstant

        public JEnumConstant enumConstant​(String name)
        If the named enum already exists, the reference to it is returned. Otherwise this method generates a new enum reference with the given name and returns it.
        Parameters:
        name - The name of the constant.
        Returns:
        The generated type-safe enum constant.
      • fullName

        public String fullName()
        Gets the fully qualified name of this class.
        Specified by:
        fullName in class JType
        Returns:
        Strings like "int", "java.lang.String", "java.io.File[]". Never null.
      • binaryName

        public String binaryName()
        Description copied from class: JType
        Gets the binary name of the type. See http://java.sun.com/docs/books/jls/third_edition/html/binaryComp.html#44909
        Overrides:
        binaryName in class JType
        Returns:
        Name like "Foo$Bar", "int", "java.lang.String", "java.io.File[]". Never null.
      • isInterface

        public boolean isInterface()
        Description copied from class: JClass
        Checks if this object represents an interface.
        Specified by:
        isInterface in class JClass
      • isAbstract

        public boolean isAbstract()
        Description copied from class: JClass
        Checks if this class is an abstract class.
        Specified by:
        isAbstract in class JClass
      • field

        public JFieldVar field​(int mods,
                               JType type,
                               String name)
        Adds a field to the list of field members of this JDefinedClass.
        Parameters:
        mods - Modifiers for this field
        type - JType of this field
        name - Name of this field
        Returns:
        Newly generated field
      • field

        public JFieldVar field​(int mods,
                               JType type,
                               String name,
                               JExpression init)
        Adds a field to the list of field members of this JDefinedClass.
        Parameters:
        mods - Modifiers for this field.
        type - JType of this field.
        name - Name of this field.
        init - Initial value of this field.
        Returns:
        Newly generated field
      • isAnnotationTypeDeclaration

        public boolean isAnnotationTypeDeclaration()
        This method indicates if the interface is an annotationTypeDeclaration
      • getClassType

        public ClassType getClassType()
      • fields

        public Map<String,​JFieldVar> fields()
        Returns all the fields declred in this class. The returned Map is a read-only live view.
        Returns:
        always non-null.
      • init

        public JBlock init()
        Creates, if necessary, and returns the static initializer for this class.
        Returns:
        JBlock containing initialization statements for this class
      • instanceInit

        public JBlock instanceInit()
        Creates, if necessary, and returns the instance initializer for this class.
        Returns:
        JBlock containing initialization statements for this class
      • constructor

        public JMethod constructor​(int mods)
        Adds a constructor to this class.
        Parameters:
        mods - Modifiers for this constructor
      • constructors

        public Iterator<JMethod> constructors()
        Returns an iterator that walks the constructors defined in this class.
      • getConstructor

        public JMethod getConstructor​(JType[] argTypes)
        Looks for a method that has the specified method signature and return it.
        Returns:
        null if not found.
      • method

        public JMethod method​(int mods,
                              JType type,
                              String name)
        Add a method to the list of method members of this JDefinedClass instance.
        Parameters:
        mods - Modifiers for this method
        type - Return type for this method
        name - Name of the method
        Returns:
        Newly generated JMethod
      • methods

        public Collection<JMethod> methods()
        Returns the set of methods defined in this class.
      • getMethod

        public JMethod getMethod​(String name,
                                 JType[] argTypes)
        Looks for a method that has the specified method signature and return it.
        Returns:
        null if not found.
      • javadoc

        public JDocComment javadoc()
        Creates, if necessary, and returns the class javadoc for this JDefinedClass
        Specified by:
        javadoc in interface JDocCommentable
        Returns:
        JDocComment containing javadocs for this class
      • hide

        public void hide()
        Mark this file as hidden, so that this file won't be generated.

        This feature could be used to generate code that refers to class X, without actually generating X.java.

      • isHidden

        public boolean isHidden()
      • listClasses

        public final JClass[] listClasses()
        Returns all the nested classes defined in this class.
      • outer

        public JClass outer()
        Description copied from class: JClass
        Returns the class in which this class is nested, or null if this is a top-level class.
        Overrides:
        outer in class JClass
      • declareBody

        protected void declareBody​(JFormatter f)
        prints the body of a class.
      • direct

        public void direct​(String string)
        Places the given string directly inside the generated class. This method can be used to add methods/fields that are not generated by CodeModel. This method should be used only as the last resort.
      • _package

        public final JPackage _package()
        Description copied from class: JClass
        Gets the package to which this class belongs. TODO: shall we move move this down?
        Specified by:
        _package in class JClass
      • parentContainer

        public final JClassContainer parentContainer()
        Description copied from interface: JClassContainer
        Parent JClassContainer. If this is a package, this method returns a parent package, or null if this package is the root package. If this is an outer-most class, this method returns a package to which it belongs. If this is an inner class, this method returns the outer class.
        Specified by:
        parentContainer in interface JClassContainer
      • typeParams

        public JTypeVar[] typeParams()
        Description copied from class: JClass
        Iterates all the type parameters of this class/interface.

        For example, if this JClass represents Set<T>, this method returns an array that contains single JTypeVar for 'T'.

        Specified by:
        typeParams in interface JGenerifiable
        Overrides:
        typeParams in class JClass
      • substituteParams

        protected JClass substituteParams​(JTypeVar[] variables,
                                          List<JClass> bindings)
        Description copied from class: JClass
        Substitutes the type variables with their actual arguments.

        For example, when this class is Map<String,Map<V>>, (where V then doing substituteParams( V, Integer ) returns a JClass for Map<String,Map<Integer>>.

        This method needs to work recursively.

        Specified by:
        substituteParams in class JClass
      • annotate

        public JAnnotationUse annotate​(JClass clazz)
        Adding ability to annotate a class
        Specified by:
        annotate in interface JAnnotatable
        Parameters:
        clazz - The annotation class to annotate the class with
      • annotate2

        public <W extends JAnnotationWriter<? extends Annotation>> W annotate2​(Class<W> clazz)
        Description copied from interface: JAnnotatable
        Adds an annotation to this program element and returns a type-safe writer to fill in the values of such annotations.
        Specified by:
        annotate2 in interface JAnnotatable
        Returns:
      • removeAnnotation

        public boolean removeAnnotation​(JAnnotationUse annotation)
        Description copied from interface: JAnnotatable
        Removes annotation from this program element.
        Specified by:
        removeAnnotation in interface JAnnotatable
        Parameters:
        annotation - The annotation to be removed from the program element
      • mods

        public JMods mods()
        Returns:
        the current modifiers of this class. Always return non-null valid object.