codesimian
Class PrimitiveArray.ShortArray

java.lang.Object
  extended by codesimian.CS<CSGeneric>
      extended by codesimian.DefaultCS
          extended by codesimian.PrimitiveArray
              extended by codesimian.PrimitiveArray.ShortArray
All Implemented Interfaces:
CodeSimian
Enclosing class:
PrimitiveArray

public static class PrimitiveArray.ShortArray
extends PrimitiveArray

hard-coding 3 similar classes is too much... make a function to automaticly generate classes for every primitive type.


Nested Class Summary
 
Nested classes/interfaces inherited from class codesimian.PrimitiveArray
PrimitiveArray.ByteArray, PrimitiveArray.IntArray, PrimitiveArray.ShortArray
 
Field Summary
 
Fields inherited from class codesimian.CS
DESCRIPTION, END, EXECPROXY, HEAP, JAVACODE, MYFUEL, NAME, NEWINSTANCE, NULL, PARENT, PARSEPRIORITY, PREV, TESTER, THIS
 
Constructor Summary
PrimitiveArray.ShortArray()
           
PrimitiveArray.ShortArray(short[] array)
           
 
Method Summary
 double cost()
          cost() should be changed to return a float, and should be renamed to costToExecute()

cost of EXECUTING this CS, not including any CSs it executes recursively.
 int countP()
          Quantity of params.
 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()".
 java.lang.Object L(java.lang.Class c)
          Optionally execute this CS, and definitely try to CAST it to the specified Java type.
 java.lang.Object L(int startIndex, java.lang.Class type, int indexQuantity)
          efficient array-copy if type==int[].class
 CS newInstance()
          the int[] array is copied
 CS P(int index)
          returns from the constant-pool
 double PD(int index)
          Returns a param as a double.
 short PS(int index)
           
 boolean setD(int index, double value)
          sets a param to a double value.
 boolean setL(int startIndex, java.lang.Object value)
          needs to be tested
 boolean setL(int startIndex, java.lang.Object value, int indexQuantity)
          needs to be tested
 boolean setL(java.lang.Object value)
          setL setD setF setJ setI setS setC setB setZ are functions that SET THE VALUE OF THIS CS to some object, primitive, or array.
 boolean setP(int index, CS value)
          can only set indexs that already exist
 boolean setS(int index, short value)
           
 
Methods inherited from class codesimian.PrimitiveArray
bitsToBytes, bytesToBits, concatByteArrays, cutBitsToMultipleOf8, D, deleteP, DForProxy, insertP, isIllusion, javaCodeForSubclass, maxP, minP, padBitsToMultipleOf8, sizeOfConcatChilds, subarray
 
Methods inherited from class codesimian.DefaultCS
B, C, decrementMyFuel, description, F, fuel, getExec, getObject, heap, I, indexP, indexPName, insertB, insertC, insertD, insertF, insertI, insertJ, insertL, insertL, insertL1, insertS, insertZ, J, javaCode, LForProxy, LForProxy, myFuel, name, objectToCS, objectToCSArray, objectToCSArray, prevD, prevL, PType, S, setB, setC, setCountP, setD, setExec, setF, setFuel, setI, setJ, setL1, setMyFuel, setName, setObject, setPrevExec, setPType, 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, deleteP, FForProxy, GETB, GETC, GETD, GETF, GETI, GETJ, GETL, GETS, GETZ, IForProxy, JForProxy, L, L, L, maxD, minD, overwrites, parent, parsePriority, PB, PC, PF, PI, PJ, PL, prevB, prevC, prevF, prevI, prevJ, prevS, prevZ, proxyOf, 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
 

Constructor Detail

PrimitiveArray.ShortArray

public PrimitiveArray.ShortArray()

PrimitiveArray.ShortArray

public PrimitiveArray.ShortArray(short[] array)
Method Detail

keyword

public java.lang.String keyword()
Description copied from class: DefaultCS
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()".
Default: Returns class name, minus package name (and its dots), and change the first letter to lowercase.

For example, CS.MaxParams does not override keyword(), which returns "maxP".

Overrides:
keyword in class PrimitiveArray
See Also:
CS.parent(), CS.newInstance(), CS.name()

cost

public double cost()
Description copied from class: CS
cost() should be changed to return a float, and should be renamed to costToExecute()

cost of EXECUTING this CS, not including any CSs it executes recursively. The INTERNAL cost.

One unit of myFuel() costs cost() units of fuel(). Beware of CSs that counterfeit fuel.

Returns 1 by default.

Overrides:
cost in class CS

PS

public short PS(int index)
Overrides:
PS in class CS
See Also:
CS.PD(int)

PD

public double PD(int index)
Description copied from class: CS
Returns a param as a double. Same as P(paramIndex).D()

Why not just use P(paramIndex).D() instead? Its not just for convenience. Some CSs store their params as doubles or other primitives (or any type of Object, usually String or CS), and if you predict correctly how params are stored, PD(paramIndex) is much faster than P(paramIndex).D(), but BEWARE: if you predict incorrectly its a little slower. It calculates the same double either way.

For all paramIndex: P(paramIndex).D() == PD(paramIndex)

Overrides:
PD in class CS

countP

public int countP()
Description copied from class: CS
Quantity of params. Should be between minP() and maxP() inclusive when you EXECUTE this CS. Can be below minP() for a short time during compiling, but you must not EXECUTE this CS during that time.

Overrides:
countP in class DefaultCS

P

public CS P(int index)
returns from the constant-pool

Overrides:
P in class DefaultCS
Parameters:
index - range 0 (or neg?) to countP()-1 inclusive
See Also:
CS.heap()

setP

public boolean setP(int index,
                    CS value)
can only set indexs that already exist

Overrides:
setP in class DefaultCS

setD

public boolean setD(int index,
                    double value)
Description copied from class: CS
sets a param to a double value. Same as P(paramIndex).setD(value)

Overrides:
setD in class DefaultCS

setS

public boolean setS(int index,
                    short value)
Overrides:
setS in class DefaultCS
See Also:
CS.setD(int,double)

setL

public boolean setL(java.lang.Object value)
Description copied from class: CS
setL setD setF setJ setI setS setC setB setZ are functions that SET THE VALUE OF THIS CS to some object, primitive, or array.

Overrides:
setL in class DefaultCS

setL

public boolean setL(int startIndex,
                    java.lang.Object value)
Description copied from class: DefaultCS
needs to be tested

Specified by:
setL in interface CodeSimian
Overrides:
setL in class DefaultCS
See Also:
CS.setL(int,Object,int)

setL

public boolean setL(int startIndex,
                    java.lang.Object value,
                    int indexQuantity)
Description copied from class: DefaultCS
needs to be tested

Specified by:
setL in interface CodeSimian
Overrides:
setL in class DefaultCS

L

public java.lang.Object L(java.lang.Class c)
Description copied from class: CS
Optionally execute this CS, and definitely try to CAST it to the specified Java type. If fail, throw a ClassCastException.

It is preferred not to return CSs from this function. If you have a CS to return, the standard is to put it in param0... setP(0,returnValue), where the function caller should get the output from... P(0).

The functions: V Z B C S I J F D and L , usually EXECUTE this CS and CAST its value to the specified type.
L does not have to execute this CS, but all the others do. The other difference is L can throw a CSCastException (extends ClassCastException).

No pattern of L()'s behavior is guaranteed except for primitive wrappers and 1D arrays.
The L's of some some CSs are more predictable than others, often written about in javadoc of a class.
If it casts correctly, it could fail later. If it fails many times, and you try again, it could still succeed.

These 10 function names are also used by a core part of Java (but not as function names): java.lang.Class.name() . Example: new int[7][6][5].getClass().getName() returns "[[[I".

EXAMPLES:
JButton b = (JButton) new ButtonCS().L(Component.class); //JButton inherits from Component
int fiveFiftyFive = new N(555).I();
double charValues[] = (double[]) new S("arraySize11").L(double[].class);

Overrides:
L in class CS
See Also:
CS.Z(), CS.B(), CS.C(), CS.S(), CS.I(), CS.J(), CS.F(), CS.D()

L

public java.lang.Object L(int startIndex,
                          java.lang.Class type,
                          int indexQuantity)
efficient array-copy if type==int[].class

Overrides:
L in class CS

newInstance

public CS newInstance()
the int[] array is copied

Overrides:
newInstance in class DefaultCS