codesimian
Class FileOrURL

java.lang.Object
  extended by codesimian.CS
      extended by codesimian.DefaultCS
          extended by codesimian.NothingList
              extended by codesimian.FileOrURL
All Implemented Interfaces:
CodeSimian, java.io.Serializable

public class FileOrURL
extends NothingList

A list that provides access to a file system or internet web of pages. Its made of lists, like FileOrURL. The first thing in the list is a String that is the name + location of a file or URL.

Examples:
fileOrURL("C:\\")
becomes
fileOrURL("C:\\" DATA file1 file2 fileOrURL("C:\\windows" file1 file2...) file4 file5...)

DATA is replaced by a list of bytes, if the file or url contains bytes. If its a folder on your hard drive, it has no bytes.

fileOrURL("http://codesimian.com")
instead of becoming a tree of files, it becomes a tree of HTML links.

It doesnt matter if the files come from your hard drive or internet.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class codesimian.CS
DESCRIPTION, END, EXECPROXY, FUEL, HEAP, JAVACODE, MYFUEL, NAME, NEWINSTANCE, NULL, PARENT, PARSEPRIORITY, PREV, TESTER
 
Constructor Summary
FileOrURL()
           
 
Method Summary
 CS createChild(java.lang.String fileNameOrURL)
          returns a new CS that represents some subfolder or subURL (of this FileOrURL).
 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()
          returns this.countP().
 java.lang.String[] getNewChildNames()
           
 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)
          returns File, URL, byte[], and returns the default (for Class c) if that doesnt work
 int maxP()
          Maximum quantity of Params
 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.
 byte overwrites(int index)
          Describes when (if ever) this CS overwrites one of its own childs.
 
Methods inherited from class codesimian.NothingList
javaCode
 
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, 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, setS, setZ, start, toString, V, Z
 
Methods inherited from class codesimian.CS
addP, addP, addP, addP, addP, BForProxy, CForProxy, clone, cost, D, deleteP, FForProxy, IForProxy, isIllusion, javaCode, JForProxy, L, L, L, L, maxD, minD, parent, parsePriority, PB, PC, PD, PF, PI, PJ, PL, prevB, prevC, prevF, prevI, prevJ, prevS, prevZ, proxyOf, PS, PZ, reflect, reflect, setB, setC, setCost, setDescription, setF, setHeap, setI, setJ, setL, setL, setParent, setParsePriority, setProxyOf, setPType, setS, setTester, setZ, SForProxy, tester, VForProxy, voidReflect, ZForProxy
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FileOrURL

public FileOrURL()
Method Detail

DForProxy

public double DForProxy()
Description copied from class: NothingList
returns this.countP(). This list does nothing.

Overrides:
DForProxy in class NothingList

overwrites

public byte overwrites(int index)
Description copied from class: CS
Describes when (if ever) this CS overwrites one of its own childs. Returns 1 if sometimes overwrites, 0 if dont know, or -1 if never overwrites.

Example, to overwrite index 2: setP(2,anyOtherCS) or setI(2,3);

Example: in bayesNode(list(..bayesnodes...) list(..numbers...)) the bayesNode modifies the numbers if they dont sum to 1.0 therefore bayesNode.overwrites(1) (second list) should return 1 (or 0) because it overwrites and bayesNode.overwrites(0) (first list) should return -1 (or 0) because it does not overwrite. WAIT A MINUTE... IF ITS ONLY MODIFIES ITS GRANDCHILDREN BUT NOT ITS CHILDS DIRECTLY, THEN WHY SHOULD THIS FUNCTION RETURN 1 FOR THE CHILDS INDEXS.

        Indexs can be positive (up to index countP()-1) or negative.
        Use any of:
        public static final int EXECPROXY = -2; 
        PREV = -3;
        FUEL = -4;
        MYFUEL = -5;
        NEWINSTANCE = -6;
        PARENT = -7;
        NAME = -8;
        DESCRIPTION = -9;
        PARSEPRIORITY = -10;
        JAVACODE = -11;
        HEAP = -12;


Overwrites() can theoretically be used for optimization of code. If you know some param is never overwritten by the CS that contains it, then only external CSs can do it. If they dont, its never overwritten, and can be optimized.

Overrides:
overwrites in class CS
Returns:
1 if sometimes overwrites index, 0 if doesnt know, -1 if never overwrites

getNewChildNames

public java.lang.String[] getNewChildNames()

L

public java.lang.Object L(java.lang.Class c)
returns File, URL, byte[], and returns the default (for Class c) if that doesnt work

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

createChild

public CS createChild(java.lang.String fileNameOrURL)
returns a new CS that represents some subfolder or subURL (of this FileOrURL). Like this FileOrURL, usually the first thing in it is its name, except when its just a list of bytes... then its the bytes downloaded from the file or url.


minP

public int minP()
Description copied from class: DefaultCS
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.

Overrides:
minP in class NothingList

maxP

public int maxP()
Description copied from class: CS
Maximum quantity of Params

Overrides:
maxP in class NothingList

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 NothingList
See Also:
CS.parent(), CS.newInstance(), CS.name()

description

public java.lang.String description()
Description copied from class: CS
a short description of this CS, shorter than the javadoc, but long enough to tell what the params are for. Example use: in automatically generated webpages for CodeSimian. Example: "returns sum of all params" for Add.

Overrides:
description in class DefaultCS