Class JCodeModel
Here's your typical CodeModel application.
JCodeModel cm = new JCodeModel();
// generate source code by populating the 'cm' tree.
cm._class(...);
...
// write them out
cm.build(new File("."));
Every CodeModel node is always owned by one JCodeModel object
at any given time (which can be often accesesd by the owner() method.)
As such, when you generate Java code, most of the operation works
in a top-down fashion. For example, you create a class from JCodeModel,
which gives you a JDefinedClass. Then you invoke a method on it
to generate a new method, which gives you JMethod, and so on.
There are a few exceptions to this, most notably building JExpressions,
but generally you work with CodeModel in a top-down fashion.
Because of this design, most of the CodeModel classes aren't directly instanciable.
Where to go from here?
Most of the time you'd want to populate new type definitions in a JCodeModel.
See _class(String, ClassType).
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate classReferences to existing classes.private final class -
Field Summary
FieldsModifier and TypeFieldDescriptionfinal JPrimitiveTypeThe reverse look up forprimitiveToBoxfinal JPrimitiveTypefinal JPrimitiveTypefinal JPrimitiveTypefinal JPrimitiveTypefinal JPrimitiveTypeprotected static final booleanIf the flag is true, we will consider two classes "Foo" and "foo" as a collision.final JPrimitiveTypefinal JNullTypeObtains a reference to the special "null" type.The packages that this JCodeWriter contains.Conversion from primitive typeClass(such asInteger.TYPEto its boxed type (such as Integer.class)private final HashMap<Class<?>, JCodeModel.JReferencedClass> All JReferencedClasses are pooled here.final JPrimitiveTypefinal JPrimitiveTypeprivate JClassCached forwildcard(). -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionCreates a new generated class.Creates a new generated class.Creates a new generated class.Gets a reference to the already created generated class.Add a package to the list of packages to be generatedanonymousClass(JClass baseType) Creates a new anonymous class.anonymousClass(Class<?> baseType) voidbuild(CodeWriter out) A convenience method forbuild(out,out).voidbuild(CodeWriter source, CodeWriter resource) Generates Java source code.voidA convenience method forbuild(destDir,System.out).voidA convenience method forbuild(srcDir,resourceDir,System.out).voidbuild(File srcDir, File resourceDir, PrintStream status) Generates Java source code.voidbuild(File destDir, PrintStream status) Generates Java source code.intReturns the number of files to be generated ifbuild(File, PrintStream)is invoked now.directClass(String name) Creates a dummy, unknownJClassthat represents a given name.private static booleannewAnonymousClass(JClass baseType) Deprecated.The naming convention doesn't match the rest of the CodeModel.packages()Returns an iterator that walks the packages defined using this code writer.Obtains a type object from a type name.Obtains a reference to an existing class from its Class object.Obtains a reference to an existing class from its fully-qualified class name.final JPackagewildcard()Gets aJClassrepresentation for "?", which is equivalent to "? extends Object".
-
Field Details
-
packages
-
refClasses
All JReferencedClasses are pooled here. -
NULL
Obtains a reference to the special "null" type. -
VOID
-
BOOLEAN
-
BYTE
-
SHORT
-
CHAR
-
INT
-
FLOAT
-
LONG
-
DOUBLE
-
isCaseSensitiveFileSystem
protected static final boolean isCaseSensitiveFileSystemIf the flag is true, we will consider two classes "Foo" and "foo" as a collision. -
wildcard
Cached forwildcard(). -
primitiveToBox
Conversion from primitive typeClass(such asInteger.TYPEto its boxed type (such as Integer.class) -
boxToPrimitive
The reverse look up forprimitiveToBox
-
-
Constructor Details
-
JCodeModel
public JCodeModel()
-
-
Method Details
-
getFileSystemCaseSensitivity
private static boolean getFileSystemCaseSensitivity() -
_package
-
rootPackage
-
packages
-
_class
Creates a new generated class.- Throws:
JClassAlreadyExistsException- When the specified class/interface was already created.
-
directClass
-
_class
public JDefinedClass _class(int mods, String fullyqualifiedName, ClassType t) throws JClassAlreadyExistsException Creates a new generated class.- Throws:
JClassAlreadyExistsException- When the specified class/interface was already created.
-
_class
public JDefinedClass _class(String fullyqualifiedName, ClassType t) throws JClassAlreadyExistsException Creates a new generated class.- Throws:
JClassAlreadyExistsException- When the specified class/interface was already created.
-
_getClass
Gets a reference to the already created generated class.- Returns:
- null If the class is not yet created.
- See Also:
-
newAnonymousClass
Deprecated.The naming convention doesn't match the rest of the CodeModel. UseanonymousClass(JClass)instead.Creates a new anonymous class. -
anonymousClass
Creates a new anonymous class. -
anonymousClass
-
build
Generates Java source code. A convenience method forbuild(destDir,destDir,System.out).- Parameters:
destDir- source files are generated into this directory.status- if non-null, progress indication will be sent to this stream.- Throws:
IOException
-
build
Generates Java source code. A convenience method that callsbuild(CodeWriter,CodeWriter).- Parameters:
srcDir- Java source files are generated into this directory.resourceDir- Other resource files are generated into this directory.status- if non-null, progress indication will be sent to this stream.- Throws:
IOException
-
build
A convenience method forbuild(destDir,System.out).- Throws:
IOException
-
build
A convenience method forbuild(srcDir,resourceDir,System.out).- Throws:
IOException
-
build
A convenience method forbuild(out,out).- Throws:
IOException
-
build
Generates Java source code.- Throws:
IOException
-
countArtifacts
public int countArtifacts()Returns the number of files to be generated ifbuild(File, PrintStream)is invoked now. -
ref
-
_ref
-
ref
-
wildcard
-
parseType
Obtains a type object from a type name.This method handles primitive types, arrays, and existing
Classes.- Throws:
ClassNotFoundException- If the specified type is not found.
-