|
|||||||||
| 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 DefaultCSpublic int minP()
DefaultCS
minP in class DefaultCSpublic java.lang.String keyword()
DefaultCS
keyword in class DefaultCSCS.parent(),
CS.newInstance(),
CS.name()public java.lang.String description()
CS
description in class DefaultCSpublic 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 | ||||||||