pnuts.ext
Class DynamicClass

java.lang.Object
  |
  +--pnuts.lang.PnutsFunction
        |
        +--pnuts.ext.DynamicClass

public class DynamicClass
extends PnutsFunction
implements java.io.Serializable

An implementation of class-based inheritance. See Pnuts User's Guide for details.

See Also:
AbstractData, Serialized Form

Inner Class Summary
 class DynamicClass.Instance
           
 
Field Summary
protected static PnutsFunction nop
           
protected static java.util.Hashtable primitiveTypes
           
protected static java.util.Hashtable typeSpace
           
 
Fields inherited from class pnuts.lang.PnutsFunction
CATCH, DEFINED, EVAL, GET_CONTEXT, IMPORT, LOAD, LOAD_FILE, PACKAGE, primitive_names, primitives, QUIT, THROW
 
Constructor Summary
protected DynamicClass(java.lang.String name)
           
 
Method Summary
 void add(java.lang.String name)
          Deprecated. As of Pnuts 1.0beta1
 void add(java.lang.String name, java.lang.Class clazz)
          Deprecated. As of Pnuts 1.0beta1
 void add(java.lang.String name, DynamicClass type)
          Deprecated. As of Pnuts 1.0beta1
 java.lang.Object attributeType(java.lang.String name)
           
static DynamicClass declare(java.lang.String name, DynamicClass superType)
          Declare a type which behaves as a "class".
protected  java.lang.Object exec(java.lang.Object[] args, Context context)
          Call a function in "context" with arguments "args".
 java.util.Hashtable getAttributes()
           
 java.util.Enumeration getMethods()
           
 java.lang.String getName()
          get the name of type
 DynamicClass getSuperType()
          get the supertype
 boolean isSubTypeOf(DynamicClass type)
          check if the type is subtype of the specified type
 void method(java.lang.String name, PnutsFunction func)
          define a method
 void remove(java.lang.String name)
           
 void removeMethod(java.lang.String name)
          remove a method
 void removeVar(java.lang.String name)
          remove an attribute
 java.lang.String toString()
           
 void var(java.lang.String name)
          declare an attribute of the Object class
 void var(java.lang.String name, java.lang.Class clazz)
          declare an attribute of the specified class
 void var(java.lang.String name, DynamicClass type)
          declare an attribute of the specified type
 
Methods inherited from class pnuts.lang.PnutsFunction
accept, autoload, call, call, call, call, call, defined, get, getId, getImportEnv, getPackage, isBuiltin, put, unparse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

typeSpace

protected static java.util.Hashtable typeSpace

nop

protected static PnutsFunction nop

primitiveTypes

protected static java.util.Hashtable primitiveTypes
Constructor Detail

DynamicClass

protected DynamicClass(java.lang.String name)
Method Detail

declare

public static DynamicClass declare(java.lang.String name,
                                   DynamicClass superType)
Declare a type which behaves as a "class". It inherits attributes and methods from superType

getSuperType

public DynamicClass getSuperType()
get the supertype

getName

public java.lang.String getName()
get the name of type
Overrides:
getName in class PnutsFunction
Tags copied from class: PnutsFunction
Returns:
the name of functions

getAttributes

public java.util.Hashtable getAttributes()

getMethods

public java.util.Enumeration getMethods()

add

public void add(java.lang.String name,
                java.lang.Class clazz)
Deprecated. As of Pnuts 1.0beta1


add

public void add(java.lang.String name,
                DynamicClass type)
Deprecated. As of Pnuts 1.0beta1


add

public void add(java.lang.String name)
Deprecated. As of Pnuts 1.0beta1


var

public void var(java.lang.String name,
                java.lang.Class clazz)
declare an attribute of the specified class

var

public void var(java.lang.String name,
                DynamicClass type)
declare an attribute of the specified type

var

public void var(java.lang.String name)
declare an attribute of the Object class

removeVar

public void removeVar(java.lang.String name)
remove an attribute

remove

public void remove(java.lang.String name)

method

public void method(java.lang.String name,
                   PnutsFunction func)
define a method

removeMethod

public void removeMethod(java.lang.String name)
remove a method

attributeType

public java.lang.Object attributeType(java.lang.String name)

isSubTypeOf

public boolean isSubTypeOf(DynamicClass type)
check if the type is subtype of the specified type

exec

protected java.lang.Object exec(java.lang.Object[] args,
                                Context context)
Description copied from class: PnutsFunction
Call a function in "context" with arguments "args". Subclasses of this class should override this method.
Overrides:
exec in class PnutsFunction
Tags copied from class: PnutsFunction
Returns:
the result of the call

toString

public java.lang.String toString()
Overrides:
toString in class PnutsFunction