|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjaxx.compiler.JAXXCompiler
public class JAXXCompiler
Compiles a given jaxxFile into a javaFile.
| Field Summary | |
|---|---|
protected java.io.File |
baseDir
Base directory used for path resolution (normally the directory in which the .jaxx file resides). |
protected DataBindingHelper |
bindingHelper
Binding Util |
protected java.lang.StringBuffer |
bodyCode
Extra code to be added to the class body. |
protected java.lang.ClassLoader |
classLoader
ClassLoader which searches the user-specified class path in addition to the normal class path |
protected CompilerConfiguration |
defaultConfiguration
|
protected CompiledObjectDecorator |
defaultDecorator
default decodator to use if none specified |
protected org.w3c.dom.Document |
document
Parsed XML of src file. |
static java.lang.String[] |
EMPTY_STRING_ARRAY
|
protected JAXXEngine |
engine
engine which references this compiler (can be null if compiler is standalone) |
protected java.util.Map<EventHandler,java.lang.String> |
eventHandlerMethodNames
Map of event handler method names used in compiler |
protected java.util.Map<java.lang.String,java.util.Map<ClassDescriptor,java.util.List<EventHandler>>> |
eventHandlers
Maps objects (expressed in Java code) to event listener classes (e.g. |
protected boolean |
failed
flag to detect if an error occurs while compiling jaxx file |
protected DefaultObjectHandler |
firstPassClassTagHandler
The unique object handler used in first pass |
protected boolean |
identCssFound
Flag to know if jaxx file ident css was found, otherwise add it when CompilerConfiguration.isAutoImportCss() is sets to true
at the end of the second compile pass. |
protected IDHelper |
idHelper
to generate ids |
protected java.util.Map<CompiledObject,java.lang.String> |
ids
Maps objects to their ID strings. |
protected java.util.Set<java.lang.String> |
importedClasses
Contains strings of the form "javax.swing.Timer" |
protected java.util.Set<java.lang.String> |
importedPackages
Contains strings of the form "javax.swing." |
protected java.lang.StringBuffer |
initializer
Extra code to be added to the instance initializer. |
protected java.util.List<java.lang.Runnable> |
initializers
A list of Runnables which will be run after the first compilation pass. |
static int |
INLINE_THRESHOLD
Maximum length of an inlinable creation method. |
protected java.util.List<Rule> |
inlineStyles
Contains all attributes defined inline on class tags. |
protected JavaFile |
javaFile
the file to be generated |
static java.lang.String |
JAXX_INTERNAL_NAMESPACE
|
static java.lang.String |
JAXX_NAMESPACE
|
protected JAXXCompilerFile |
jaxxFile
|
protected java.lang.StringBuffer |
lateInitializer
Extra code to be added at the end of the instance initializer. |
protected static java.lang.String |
lineSeparator
Line separator cached value |
protected static org.apache.commons.logging.Log |
log
Logger |
protected boolean |
mainDeclared
true if a main() method has been declared in a script |
protected java.util.Map<java.lang.String,CompiledObject> |
objects
Maps object ID strings to the objects themselves. |
protected java.util.Stack<CompiledObject> |
openComponents
Keeps track of open components (components still having children added). |
protected java.lang.String |
outputClassName
Name of class being compiled. |
protected CompiledObject |
root
Object corresponding to the root tag in the document. |
protected ScriptManager |
scriptManager
script manager |
protected java.util.Stack<java.io.File> |
sourceFiles
Used for error reporting purposes, so we can report the right source file. |
protected java.io.File |
src
jaxx file being compiled. |
static boolean |
STRICT_CHECKS
True to throw exceptions when we encounter unresolvable classes, false to ignore. |
protected Stylesheet |
stylesheet
Combination of all stylesheets registered using registerStylesheet(jaxx.runtime.css.Stylesheet). |
protected SymbolTable |
symbolTable
table of symbols for this compiler |
protected java.util.Stack<org.w3c.dom.Element> |
tagsBeingCompiled
Used for error reporting purposes, so we can report the right line number. |
| Constructor Summary | |
|---|---|
JAXXCompiler()
|
|
JAXXCompiler(JAXXEngine engine,
JAXXCompilerFile jaxxFile,
java.util.List<java.lang.String> defaultImports)
Creates a new JAXXCompiler. |
|
| Method Summary | |
|---|---|
void |
addDependencyClass(java.lang.String className)
|
void |
addImport(java.lang.String text)
|
void |
addInlineStyle(CompiledObject object,
java.lang.String propertyName,
boolean dataBinding)
|
void |
addScriptField(FieldDescriptor field)
|
void |
addScriptMethod(MethodDescriptor method)
|
void |
addSimpleField(JavaField javaField)
|
void |
appendBodyCode(java.lang.String code)
|
void |
appendInitializerCode(java.lang.String code)
|
void |
appendLateInitializer(java.lang.String code)
|
void |
applyStylesheets()
|
java.lang.String |
checkJavaCode(java.lang.String javaCode)
Verifies that a snippet of Java code parses correctly. |
void |
checkOverride(CompiledObject object)
|
boolean |
checkReference(org.w3c.dom.Element tag,
java.lang.String reference,
boolean strict,
java.lang.String attribute)
Check that a reference exists in symbol table on second compil pass |
void |
clear()
|
void |
closeComponent(CompiledObject component)
|
void |
compileFirstPass()
|
void |
compileFirstPass(org.w3c.dom.Element tag)
|
void |
compileSecondPass()
|
void |
compileSecondPass(org.w3c.dom.Element tag)
|
static java.lang.String |
escapeJavaString(java.lang.String raw)
Escapes a string using standard Java escape sequences, generally in preparation to including it in a string literal in a compiled Java file. |
void |
finalizeCompiler()
|
void |
generate(JavaFileGenerator generator)
|
java.lang.String |
getAutoId(java.lang.String name)
|
java.io.File |
getBaseDir()
|
DataBindingHelper |
getBindingHelper()
|
java.lang.StringBuffer |
getBodyCode()
|
static java.lang.String |
getCanonicalName(java.lang.Class<?> clazz)
|
static java.lang.String |
getCanonicalName(ClassDescriptor clazz)
|
static java.lang.String |
getCanonicalName(CompiledObject compiled)
|
java.lang.ClassLoader |
getClassLoader()
Returns a ClassLoader which searches the user-specified
class path in addition to the normal system class path. |
CompiledObject |
getCompiledObject(java.lang.String id)
|
CompilerConfiguration |
getConfiguration()
|
JAXXEngine |
getEngine()
|
java.lang.String |
getEventHandlerMethodName(EventHandler handler)
|
java.util.Map<java.lang.String,java.util.Map<ClassDescriptor,java.util.List<EventHandler>>> |
getEventHandlers()
|
java.lang.String[] |
getExtraInterfaces()
|
java.lang.String |
getGenericType()
|
IDHelper |
getIdHelper()
|
java.util.Set<java.lang.String> |
getImportedClasses()
|
java.util.Set<java.lang.String> |
getImportedPackages()
|
java.lang.StringBuffer |
getInitializer()
|
JavaFile |
getJavaFile()
|
JAXXObjectDescriptor |
getJAXXObjectDescriptor()
|
java.lang.StringBuffer |
getLateInitializer()
|
static java.lang.String |
getLineSeparator()
Returns the system line separator string. |
java.util.Iterator<CompiledObject> |
getObjectCreationOrder()
|
java.util.Map<java.lang.String,CompiledObject> |
getObjects()
|
CompiledObject |
getOpenComponent()
|
java.lang.String |
getOutputClassName()
|
CompiledObject |
getRootObject()
|
static javax.xml.parsers.SAXParser |
getSAXParser()
|
FieldDescriptor |
getScriptField(java.lang.String fieldName)
|
FieldDescriptor[] |
getScriptFields()
|
ScriptManager |
getScriptManager()
|
MethodDescriptor |
getScriptMethod(java.lang.String methodName)
|
MethodDescriptor[] |
getScriptMethods()
|
java.util.Stack<java.io.File> |
getSourceFiles()
|
Stylesheet |
getStylesheet()
|
java.lang.String |
getSuperGenericType()
|
SymbolTable |
getSymbolTable()
|
java.lang.String |
getUniqueId(java.lang.Object object)
|
boolean |
hasMethod(java.lang.String methodName)
|
boolean |
inlineCreation(CompiledObject object)
|
boolean |
isAbstractClass()
|
boolean |
isFailed()
|
boolean |
isIdentCssFound()
|
boolean |
isMainDeclared()
|
java.lang.String |
loadFile(java.io.File file)
Loads the given file and returns its content. |
void |
openComponent(CompiledObject component)
|
void |
openComponent(CompiledObject component,
java.lang.String constraints)
|
void |
openInvisibleComponent(CompiledObject component)
|
static org.w3c.dom.Document |
parseDocument(java.io.InputStream in)
|
java.lang.String |
preprocessScript(java.lang.String script)
|
void |
registerCompiledObject(CompiledObject object)
|
void |
registerEventHandler(EventHandler handler)
|
void |
registerInitializer(java.lang.Runnable r)
Registers a Runnable which will be executed after the first
compilation pass is complete. |
void |
registerScript(java.lang.String script)
|
void |
registerScript(java.lang.String script,
java.io.File sourceFile)
|
void |
registerStylesheet(Stylesheet stylesheet)
|
void |
registerStyleSheetFile(java.io.File styleFile)
|
void |
reportError(CompilerException ex)
|
void |
reportError(org.w3c.dom.Element tag,
java.lang.String error)
|
void |
reportError(org.w3c.dom.Element tag,
java.lang.String error,
int lineOffset)
|
void |
reportError(int lineNumber,
java.lang.String error)
|
void |
reportError(java.lang.String error)
|
void |
reportError(java.lang.String extraMessage,
CompilerException ex)
|
void |
reportWarning(org.w3c.dom.Element tag,
java.lang.String warning,
int lineOffset)
|
void |
reportWarning(java.lang.String warning)
|
void |
runInitializers()
|
void |
setAbstractClass(boolean abstractClass)
|
void |
setClassLoader(java.lang.ClassLoader classLoader)
|
void |
setExtraInterfaces(java.lang.String[] extraInterfaces)
|
void |
setGenericType(java.lang.String genericType)
|
void |
setIdentCssFound(boolean identCssFound)
|
void |
setMainDeclared(boolean mainDeclared)
|
void |
setSuperGenericType(java.lang.String superGenericType)
|
static java.io.File |
URLtoFile(java.lang.String urlString)
|
static java.io.File |
URLtoFile(java.net.URL url)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected static final org.apache.commons.logging.Log log
public static boolean STRICT_CHECKS
public static final java.lang.String JAXX_NAMESPACE
public static final java.lang.String JAXX_INTERNAL_NAMESPACE
public static final int INLINE_THRESHOLD
protected static java.lang.String lineSeparator
protected final DefaultObjectHandler firstPassClassTagHandler
protected boolean failed
protected CompiledObject root
protected java.util.Set<java.lang.String> importedPackages
protected java.util.Set<java.lang.String> importedClasses
protected java.util.Stack<CompiledObject> openComponents
protected final IDHelper idHelper
protected final DataBindingHelper bindingHelper
protected SymbolTable symbolTable
protected java.io.File baseDir
protected java.io.File src
protected org.w3c.dom.Document document
protected java.lang.String outputClassName
protected ScriptManager scriptManager
protected Stylesheet stylesheet
registerStylesheet(jaxx.runtime.css.Stylesheet).
protected java.util.List<Rule> inlineStyles
protected java.util.Map<java.lang.String,java.util.Map<ClassDescriptor,java.util.List<EventHandler>>> eventHandlers
protected java.util.Map<EventHandler,java.lang.String> eventHandlerMethodNames
protected java.lang.ClassLoader classLoader
protected java.util.List<java.lang.Runnable> initializers
protected java.lang.StringBuffer initializer
protected java.lang.StringBuffer lateInitializer
protected java.lang.StringBuffer bodyCode
protected boolean mainDeclared
protected JavaFile javaFile
protected java.util.Stack<org.w3c.dom.Element> tagsBeingCompiled
protected java.util.Stack<java.io.File> sourceFiles
protected java.util.Map<java.lang.String,CompiledObject> objects
protected java.util.Map<CompiledObject,java.lang.String> ids
protected CompiledObjectDecorator defaultDecorator
protected final JAXXEngine engine
protected final CompilerConfiguration defaultConfiguration
protected final JAXXCompilerFile jaxxFile
protected boolean identCssFound
CompilerConfiguration.isAutoImportCss() is sets to true
at the end of the second compile pass.
public static final java.lang.String[] EMPTY_STRING_ARRAY
| Constructor Detail |
|---|
public JAXXCompiler()
public JAXXCompiler(JAXXEngine engine,
JAXXCompilerFile jaxxFile,
java.util.List<java.lang.String> defaultImports)
engine - engine which use the compiler (could be null if not attach to any engine)jaxxFile - the file to compiledefaultImports - list of default imports to add to java files| Method Detail |
|---|
public void runInitializers()
public void registerInitializer(java.lang.Runnable r)
Runnable which will be executed after the first
compilation pass is complete.
r - runnable to register
public void compileFirstPass(org.w3c.dom.Element tag)
throws java.io.IOException
java.io.IOException
public void compileSecondPass(org.w3c.dom.Element tag)
throws java.io.IOException
java.io.IOException
public void compileFirstPass()
throws java.io.IOException
java.io.IOException
public void compileSecondPass()
throws java.io.IOException
java.io.IOException
public void openComponent(CompiledObject component)
throws CompilerException
CompilerException
public void openComponent(CompiledObject component,
java.lang.String constraints)
throws CompilerException
CompilerExceptionpublic void openInvisibleComponent(CompiledObject component)
public CompiledObject getOpenComponent()
public void closeComponent(CompiledObject component)
public void registerCompiledObject(CompiledObject object)
public CompiledObject getCompiledObject(java.lang.String id)
public boolean inlineCreation(CompiledObject object)
public void checkOverride(CompiledObject object)
throws CompilerException
CompilerExceptionpublic DataBindingHelper getBindingHelper()
public void registerEventHandler(EventHandler handler)
public java.lang.String getEventHandlerMethodName(EventHandler handler)
public void addScriptField(FieldDescriptor field)
public void addScriptMethod(MethodDescriptor method)
public void registerScript(java.lang.String script)
throws CompilerException
CompilerException
public void registerScript(java.lang.String script,
java.io.File sourceFile)
throws CompilerException
CompilerException
public java.lang.String preprocessScript(java.lang.String script)
throws CompilerException
CompilerExceptionpublic boolean isIdentCssFound()
public void registerStyleSheetFile(java.io.File styleFile)
throws java.io.IOException
java.io.IOExceptionpublic void applyStylesheets()
public void registerStylesheet(Stylesheet stylesheet)
public void addInlineStyle(CompiledObject object,
java.lang.String propertyName,
boolean dataBinding)
public void reportWarning(java.lang.String warning)
public void reportWarning(org.w3c.dom.Element tag,
java.lang.String warning,
int lineOffset)
public void reportError(java.lang.String error)
public void reportError(CompilerException ex)
public void reportError(java.lang.String extraMessage,
CompilerException ex)
public void reportError(org.w3c.dom.Element tag,
java.lang.String error)
public void reportError(org.w3c.dom.Element tag,
java.lang.String error,
int lineOffset)
public void reportError(int lineNumber,
java.lang.String error)
public java.util.Map<java.lang.String,CompiledObject> getObjects()
public java.util.Map<java.lang.String,java.util.Map<ClassDescriptor,java.util.List<EventHandler>>> getEventHandlers()
public CompilerConfiguration getConfiguration()
public java.lang.String getOutputClassName()
public java.io.File getBaseDir()
public java.util.Set<java.lang.String> getImportedClasses()
public java.util.Set<java.lang.String> getImportedPackages()
public java.util.Iterator<CompiledObject> getObjectCreationOrder()
public CompiledObject getRootObject()
public java.util.Stack<java.io.File> getSourceFiles()
public ScriptManager getScriptManager()
public SymbolTable getSymbolTable()
public Stylesheet getStylesheet()
public FieldDescriptor[] getScriptFields()
public FieldDescriptor getScriptField(java.lang.String fieldName)
public MethodDescriptor[] getScriptMethods()
public MethodDescriptor getScriptMethod(java.lang.String methodName)
public boolean isFailed()
public IDHelper getIdHelper()
public java.lang.ClassLoader getClassLoader()
ClassLoader which searches the user-specified
class path in addition to the normal system class path.
ClassLoader to use while resolving class referencespublic JAXXObjectDescriptor getJAXXObjectDescriptor()
public java.lang.StringBuffer getInitializer()
public java.lang.StringBuffer getLateInitializer()
public java.lang.StringBuffer getBodyCode()
public boolean isMainDeclared()
public void setMainDeclared(boolean mainDeclared)
public void appendInitializerCode(java.lang.String code)
public void appendBodyCode(java.lang.String code)
public void appendLateInitializer(java.lang.String code)
public boolean hasMethod(java.lang.String methodName)
public void addImport(java.lang.String text)
public void addDependencyClass(java.lang.String className)
public java.lang.String loadFile(java.io.File file)
file - the file to load
public java.lang.String checkJavaCode(java.lang.String javaCode)
javaCode - the Java code snippet to test
CompilerException - if the code cannot be parsed
public boolean checkReference(org.w3c.dom.Element tag,
java.lang.String reference,
boolean strict,
java.lang.String attribute)
tag - the current tagreference - the required referencestrict - flag to report an error if reference was not foundattribute - (if not null reference the attribute where is defined
the reference)
true if reference was found, false
otherwise and add an error in compilerpublic java.lang.String getAutoId(java.lang.String name)
public java.lang.String getUniqueId(java.lang.Object object)
public void setExtraInterfaces(java.lang.String[] extraInterfaces)
public java.lang.String[] getExtraInterfaces()
public boolean isAbstractClass()
public void setAbstractClass(boolean abstractClass)
public java.lang.String getGenericType()
public void setGenericType(java.lang.String genericType)
public java.lang.String getSuperGenericType()
public void setSuperGenericType(java.lang.String superGenericType)
public void addSimpleField(JavaField javaField)
public JavaFile getJavaFile()
public void finalizeCompiler()
throws java.lang.Exception
java.lang.Exception
public void generate(JavaFileGenerator generator)
throws java.io.IOException
java.io.IOExceptionpublic static java.lang.String getLineSeparator()
public static java.lang.String getCanonicalName(java.lang.Class<?> clazz)
public static java.lang.String getCanonicalName(ClassDescriptor clazz)
public static java.lang.String getCanonicalName(CompiledObject compiled)
public static java.lang.String escapeJavaString(java.lang.String raw)
raw - the raw string to be escape
public static java.io.File URLtoFile(java.net.URL url)
public static java.io.File URLtoFile(java.lang.String urlString)
public static javax.xml.parsers.SAXParser getSAXParser()
public static org.w3c.dom.Document parseDocument(java.io.InputStream in)
throws java.io.IOException,
org.xml.sax.SAXException
java.io.IOException
org.xml.sax.SAXExceptionpublic JAXXEngine getEngine()
public void clear()
public void setIdentCssFound(boolean identCssFound)
public void setClassLoader(java.lang.ClassLoader classLoader)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||