codesimian
Class BeforeExec

java.lang.Object
  extended by codesimian.CS<CSGeneric>
      extended by codesimian.DefaultCS
          extended by codesimian.Exec
              extended by codesimian.BeforeExec
All Implemented Interfaces:
CodeSimian

public abstract class BeforeExec
extends Exec

Optionally add a (one time) command before some CS's exec.
This BeforeExec is the exec of some CS. Next time that CS's DForProxy() is called, this BeforeExec executes, removes itsself from that CS, sets the CS's Exec to this BeforeExec's 'nextExec' variable, then executes that Exec. Its like a message thats received just before the next CS.DForProxy(). The state of the CS that contained this should be the same except it should not contain this BeforeExec anymore.


Nested Class Summary
 
Nested classes/interfaces inherited from class codesimian.Exec
Exec.Chaos, Exec.ChaosBit, Exec.Fixnan, Exec.FixnanChaos, Exec.FixnanPrev, Exec.FixnanPrevChaos, Exec.Fuel, Exec.FuelChaos, Exec.FuelFixnan, Exec.FuelFixnanChaos, Exec.FuelFixnanPrev, Exec.FuelFixnanPrevChaos, Exec.FuelPrev, Exec.FuelPrevChaos, Exec.Myfuel, Exec.MyfuelChaos, Exec.MyfuelFixnan, Exec.MyfuelFixnanChaos, Exec.MyfuelFixnanPrev, Exec.MyfuelFixnanPrevChaos, Exec.MyfuelFuel, Exec.MyfuelFuelChaos, Exec.MyfuelFuelFixnan, Exec.MyfuelFuelFixnanChaos, Exec.MyfuelFuelFixnanPrev, Exec.MyfuelFuelFixnanPrevChaos, Exec.MyfuelFuelPrev, Exec.MyfuelFuelPrevChaos, Exec.MyfuelPrev, Exec.MyfuelPrevChaos, Exec.None, Exec.Prev, Exec.PrevChaos, Exec.SubclassDescription
 
Field Summary
 
Fields inherited from class codesimian.CS
DESCRIPTION, END, EXECPROXY, HEAP, JAVACODE, MYFUEL, NAME, NEWINSTANCE, NULL, PARENT, PARSEPRIORITY, PREV, TESTER, THIS
 
Constructor Summary
BeforeExec(CS executeBeforeMyExec)
          attachTo(executeBeforeMyExec)
 
Method Summary
 void attachTo(CS f)
          sets my 'nextExec' to f's 'exec' variable then sets f's 'exec' to me
abstract  void beforeExec(CS parameterOfExec)
          anything you want this BeforeExec to do to the target CS (parameterOfExec) immediately before its CS.DForProxy() is called.
 double DForProxy()
          Checks that P(0).getExec() == this (if not, Error).
 
Methods inherited from class codesimian.Exec
addSubclass, canChangeChaosBit, getClassDescription, getSubclass, instantiateSubclass, javaCode, javaCode, keyword, L, L, LForProxy, LForProxy, limitFuel, limitMyfuel, limitValidNumber, main, newJavaCodeForInnerSubclasses, setsPrevExec, toString
 
Methods inherited from class codesimian.DefaultCS
B, C, countP, decrementMyFuel, deleteP, description, F, fuel, getExec, getObject, heap, I, indexP, indexPName, insertB, insertC, insertD, insertF, insertI, insertJ, insertL, insertL, insertL1, insertP, insertS, insertZ, J, javaCode, minP, 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, 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, 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
 

Constructor Detail

BeforeExec

public BeforeExec(CS executeBeforeMyExec)
attachTo(executeBeforeMyExec)

Method Detail

beforeExec

public abstract void beforeExec(CS parameterOfExec)
anything you want this BeforeExec to do to the target CS (parameterOfExec) immediately before its CS.DForProxy() is called.


DForProxy

public double DForProxy()
Checks that P(0).getExec() == this (if not, Error). Calls beforeExec(P(0)). In execMe, replaces me with 'nextExec'.

Overrides:
DForProxy in class Exec
See Also:
execHacker()

attachTo

public void attachTo(CS f)
sets my 'nextExec' to f's 'exec' variable then sets f's 'exec' to me