|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcodesimian.CS<CSGeneric>
codesimian.DefaultCS
codesimian.GetJavaCompiler
public class GetJavaCompiler
Returns 1 if created a working Java compiler and saved it into P(0), or returns 0 if could not do that.
If it returns 0, an error string may be saved into P(0).
example: getJavaCompiler(replaceMeWithCompiler)
example compiler: defaultWindowsJavaCompiler(replaceMeWithJarBytes inputZipBytes optionalFolderPath)
When executed, tries to find a CS: whose P(1) is where you put the bytes of a ZIP file,
and whose P(0) becomes a byte[] array that can be interpreted
with a JarInputStream because it is a JAR file of compiled code.
Optionally its P(2) is hard drive location to unzip, compile, and zip the code, if necessary.
If it can not find a Java compiler capable of creating a new CodeSimian.jar,
then it should ask the Human user to type some code to connect codesimian to a Java compiler,
and if necessary to search for and download JDK 1.5 from the internet and tell the user to install it.
Currently it only tries to create a DefaultJavaCompiler and returns 1 if it created it, else 0.
It ???works on Windows XP, but probably not many other operating-systems. This needs to be fixed.
DO THIS ASAP: Move P(0) to P(2) and when this GetJavaCompiler is executed, execute the compiler
in P(2) and copy its input zip and output jar (in its first 2 indexs) to my first 2 indexs.
That would make GetJavaCompiler be a valid codesimian compiler because P(1) is input and P(0) is output.
ADD JAVASSIST TO CODESIMIAN:
The software Javassist might be a good enough replacement for a Java compiler.
Its files could be copied into CodeSimian.jar and modify Java class files without using the local filesystem.
Using the local filesystem to access a compiler often does not work and is bad program design if you can avoid it.
Nested Class Summary | |
---|---|
static class |
GetJavaCompiler.JavaCompilerNotFoundException
|
Field Summary | |
---|---|
boolean |
askHumanToDownloadAndInstallJDKIfHumanCantFindCompiler
later, should give codesimian the ability to search the internet for JDK 1.5 and download and install it automaticly |
boolean |
askHumanToFindCompilerIfNoCompilerFound
search only the local computer for a java compiler, which is necessary to update CodeSimian's .class files |
Fields inherited from class codesimian.CS |
---|
DESCRIPTION, END, EXECPROXY, HEAP, JAVACODE, MYFUEL, NAME, NEWINSTANCE, NULL, PARENT, PARSEPRIORITY, PREV, TESTER, THIS |
Constructor Summary | |
---|---|
GetJavaCompiler()
|
Method Summary | |
---|---|
java.lang.String |
description()
a short description of this CS, shorter than the javadoc, but long enough to tell what the params are for. |
double |
DForProxy()
Execute this CS and cast to double. |
static java.lang.String |
javaVersionSubstringOrNull(java.lang.String containsJavaVersion)
returns something like "1.5.0" or null if cant find a version in the string. |
java.lang.String |
keyword()
For the CodeSimian language as a String. CodeSimian language keyword, like "+" "*" "max" ">" etc. Override this function if you want to specify a keyword other than how I derive them from the class name, like + for Add. Some CSs might never be intended to be used in the language by their keyword. The best example (4/05) is Num, because it is used in the language like "3.4" instead of "num()". |
static java.lang.String |
minJavaVersionForCodesimian()
codesimian needs version or above |
int |
minP()
For DForProxy(). Minimum number of parameters in param[] needed to call DForProxy(). Defines which indexs of param[] DForProxy() can use. Functions with a different number of parameters must override this. OVERRIDE THIS FUNCTION IF EXEC USES A DIFFERENT NUMBER OF PARAMETERS. Default is 1. |
static java.lang.String |
tempFolderName(java.lang.String prefix,
java.lang.String suffix)
returns a folder name that does not exist and has a random number in the middle |
static int |
versionStrCompare(java.lang.String verA,
java.lang.String verB)
returns 1 if verA |
static int[] |
versionStringToIntsOrNull(java.lang.String s)
returns new int[]{1,5,0} for "1.5.0" or null if its not a version string |
Methods inherited from class codesimian.DefaultCS |
---|
B, C, countP, decrementMyFuel, deleteP, F, fuel, getExec, getObject, heap, I, indexP, indexPName, insertB, insertC, insertD, insertF, insertI, insertJ, insertL, insertL, insertL1, insertP, insertS, insertZ, J, javaCode, LForProxy, LForProxy, myFuel, name, newInstance, objectToCS, objectToCSArray, objectToCSArray, P, prevD, prevL, PType, S, setB, setC, setCountP, setD, setD, setExec, setF, setFuel, setI, setJ, setL, setL, setL, setL1, setMyFuel, setName, setObject, setP, setPrevExec, setPType, setS, setZ, start, toString, V, Z |
Methods inherited from class codesimian.CS |
---|
addB, addC, addD, addF, addI, addJ, addL, addP, addP, addP, addP, addP, addS, addZ, BForProxy, CForProxy, clone, cost, D, deleteP, FForProxy, GETB, GETC, GETD, GETF, GETI, GETJ, GETL, GETS, GETZ, IForProxy, isIllusion, JForProxy, L, L, L, L, L, maxD, maxP, minD, overwrites, parent, parsePriority, PB, PC, PD, PF, PI, PJ, PL, prevB, prevC, prevF, prevI, prevJ, prevS, prevZ, proxyOf, PS, PZ, reflect, reflect, reflect6, setB, SETB, setC, SETC, setCost, SETD, setDescription, setF, SETF, setHeap, setI, SETI, setJ, SETJ, SETL, setL, setL, setParent, setParsePriority, setProxyOf, setS, SETS, setTester, setZ, SETZ, SForProxy, tester, toJavaCode, VForProxy, voidReflect, ZForProxy |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public boolean askHumanToFindCompilerIfNoCompilerFound
public boolean askHumanToDownloadAndInstallJDKIfHumanCantFindCompiler
Constructor Detail |
---|
public GetJavaCompiler()
Method Detail |
---|
public double DForProxy()
CS
DForProxy
in class DefaultCS
public int minP()
DefaultCS
minP
in class DefaultCS
public java.lang.String keyword()
DefaultCS
keyword
in class DefaultCS
CS.parent()
,
CS.newInstance()
,
CS.name()
public java.lang.String description()
CS
description
in class DefaultCS
public static java.lang.String minJavaVersionForCodesimian()
public static int versionStrCompare(java.lang.String verA, java.lang.String verB)
public static java.lang.String javaVersionSubstringOrNull(java.lang.String containsJavaVersion)
public static int[] versionStringToIntsOrNull(java.lang.String s)
public static java.lang.String tempFolderName(java.lang.String prefix, java.lang.String suffix)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |