com.google.clearsilver.jsilver.compiler
Class JavaSourceWriter

java.lang.Object
  extended by com.google.clearsilver.jsilver.compiler.JavaSourceWriter
All Implemented Interfaces:
Closeable, Flushable

public class JavaSourceWriter
extends Object
implements Closeable, Flushable

Simple API for generating Java source code. Easier than lots of string manipulation.

Example

 java = new JavaSourceWriter(out);

 java.writeComment("// Auto generated file");
 java.writePackage("com.something.mypackage");
 java.writeImports(SomeClassToImport.class, Another.class);

 java.startClass("SomeClass", "InterfaceA");
 java.startMethod(Object.class.getMethod("toString"));
 java.writeStatement(call("System.out.println", string("hello")));
 java.endClass();
 
Note: For writing statements/expressions, staticly import the methods on JavaExpression.


Constructor Summary
JavaSourceWriter(Writer out)
           
 
Method Summary
 void close()
           
 void endAnonymousClass()
           
 void endClass()
           
 void endField()
           
 void endIfBlock()
           
 void endIfStartElseBlock()
           
 void endLoop()
           
 void endMethod()
           
 void endScopedBlock()
           
 void flush()
           
 void startAnonymousClass(String baseClass, JavaExpression... constructorArgs)
           
 void startClass(String className, String baseClassName, String... interfaceNames)
           
 void startField(String type, JavaExpression name)
           
 void startForLoop(JavaExpression start, JavaExpression end, JavaExpression increment)
           
 void startIfBlock(JavaExpression expression)
           
 void startIterableForLoop(String type, String name, JavaExpression expression)
           
 void startMethod(Method method, String... paramNames)
          Start a method.
 void startScopedBlock()
           
 void writeComment(String comment)
           
 void writeExpression(JavaExpression expression)
           
 void writeImports(Class... javaClasses)
           
static void writeJavaSymbol(PrintWriter out, String symbol)
           
 void writePackage(String packageName)
           
 void writeStatement(JavaExpression expression)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JavaSourceWriter

public JavaSourceWriter(Writer out)
Method Detail

writePackage

public void writePackage(String packageName)

writeImports

public void writeImports(Class... javaClasses)

writeComment

public void writeComment(String comment)

startClass

public void startClass(String className,
                       String baseClassName,
                       String... interfaceNames)

startAnonymousClass

public void startAnonymousClass(String baseClass,
                                JavaExpression... constructorArgs)

endAnonymousClass

public void endAnonymousClass()

startMethod

public void startMethod(Method method,
                        String... paramNames)
Start a method. The signature is based on that of an existing method.


startIfBlock

public void startIfBlock(JavaExpression expression)

endIfStartElseBlock

public void endIfStartElseBlock()

endIfBlock

public void endIfBlock()

startScopedBlock

public void startScopedBlock()

endScopedBlock

public void endScopedBlock()

startIterableForLoop

public void startIterableForLoop(String type,
                                 String name,
                                 JavaExpression expression)

startForLoop

public void startForLoop(JavaExpression start,
                         JavaExpression end,
                         JavaExpression increment)

endLoop

public void endLoop()

writeStatement

public void writeStatement(JavaExpression expression)

writeExpression

public void writeExpression(JavaExpression expression)

endMethod

public void endMethod()

endClass

public void endClass()

flush

public void flush()
Specified by:
flush in interface Flushable

close

public void close()
Specified by:
close in interface Closeable

writeJavaSymbol

public static void writeJavaSymbol(PrintWriter out,
                                   String symbol)

startField

public void startField(String type,
                       JavaExpression name)

endField

public void endField()


Copyright © 2010-2012 Google. All Rights Reserved.