org.eclipse.xtext.xbase.compiler
Class OnTheFlyJavaCompiler

java.lang.Object
  extended by org.eclipse.xtext.xbase.compiler.OnTheFlyJavaCompiler
Direct Known Subclasses:
OnTheFlyJavaCompiler.EclipseRuntimeDependentJavaCompiler

public class OnTheFlyJavaCompiler
extends java.lang.Object

Author:
Sven Efftinge - Initial contribution and API

Nested Class Summary
static class OnTheFlyJavaCompiler.EclipseRuntimeDependentJavaCompiler
           
static class OnTheFlyJavaCompiler.PatchedFileSystem
           
 
Constructor Summary
OnTheFlyJavaCompiler()
           
 
Method Summary
 void addClassPath(java.lang.String classpath)
           
 void addClassPathOfClass(java.lang.Class<?> clazz)
           
 void clearClassPath()
           
protected  boolean compile(java.lang.String arguments)
           
 java.lang.Class<?> compileToClass(java.lang.String classname, java.lang.String code)
           
protected  void createFolderStructure(java.io.File parent)
           
protected  Pair<java.lang.String,java.lang.String> createFullCode(java.lang.String statementCode, java.lang.reflect.Type returnType, Pair<java.lang.reflect.Type,java.lang.String>... params)
           
<RT> Functions.Function0<RT>
createFunction(java.lang.String expression, java.lang.Class<RT> returnType)
           
<RT,T> Functions.Function1<T,RT>
createFunction(java.lang.String body, java.lang.Class<RT> returnType, java.lang.Class<T> paramType)
           
<RT,T1,T2> Functions.Function2<T1,T2,RT>
createFunction(java.lang.String body, java.lang.Class<RT> returnType, java.lang.Class<T1> paramType1, java.lang.Class<T2> paramType2)
           
 java.lang.String getClasspathArgs()
           
protected  java.lang.String getComplianceLevelArg()
           
protected  org.eclipse.jdt.internal.compiler.batch.Main getMain()
           
protected  java.lang.Object internalCreateFunction(java.lang.String code, java.lang.reflect.Type returnType, Pair<java.lang.reflect.Type,java.lang.String>... params)
           
protected  java.net.URL resolveBundleResourceURL(java.net.URL url)
           
 void setParentClassLoader(java.lang.ClassLoader parentClassLoader)
           
protected  java.lang.String toString(java.lang.reflect.Type returnType)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OnTheFlyJavaCompiler

public OnTheFlyJavaCompiler()
Method Detail

addClassPath

public void addClassPath(java.lang.String classpath)

addClassPathOfClass

public void addClassPathOfClass(java.lang.Class<?> clazz)

clearClassPath

public void clearClassPath()

compile

protected boolean compile(java.lang.String arguments)

compileToClass

public java.lang.Class<?> compileToClass(java.lang.String classname,
                                         java.lang.String code)

createFolderStructure

protected void createFolderStructure(java.io.File parent)

createFullCode

protected Pair<java.lang.String,java.lang.String> createFullCode(java.lang.String statementCode,
                                                                 java.lang.reflect.Type returnType,
                                                                 Pair<java.lang.reflect.Type,java.lang.String>... params)

createFunction

public <RT> Functions.Function0<RT> createFunction(java.lang.String expression,
                                                   java.lang.Class<RT> returnType)

createFunction

public <RT,T> Functions.Function1<T,RT> createFunction(java.lang.String body,
                                                       java.lang.Class<RT> returnType,
                                                       java.lang.Class<T> paramType)

createFunction

public <RT,T1,T2> Functions.Function2<T1,T2,RT> createFunction(java.lang.String body,
                                                               java.lang.Class<RT> returnType,
                                                               java.lang.Class<T1> paramType1,
                                                               java.lang.Class<T2> paramType2)

getClasspathArgs

public java.lang.String getClasspathArgs()

getComplianceLevelArg

protected java.lang.String getComplianceLevelArg()

getMain

protected org.eclipse.jdt.internal.compiler.batch.Main getMain()

internalCreateFunction

protected java.lang.Object internalCreateFunction(java.lang.String code,
                                                  java.lang.reflect.Type returnType,
                                                  Pair<java.lang.reflect.Type,java.lang.String>... params)

resolveBundleResourceURL

protected java.net.URL resolveBundleResourceURL(java.net.URL url)
                                         throws java.io.IOException
Throws:
java.io.IOException

setParentClassLoader

public void setParentClassLoader(java.lang.ClassLoader parentClassLoader)

toString

protected java.lang.String toString(java.lang.reflect.Type returnType)