org.erights.e.elib.prim
Class StaticMethodNode

java.lang.Object
  |
  +--org.erights.e.elib.base.MethodNode
        |
        +--org.erights.e.elib.prim.JavaMemberNode
              |
              +--org.erights.e.elib.prim.StaticMethodNode
All Implemented Interfaces:
EStackItem, Script

public class StaticMethodNode
extends JavaMemberNode

Untamed: How a java static is made to appear as an instance method of an StaticMaker when seen thru E.call*() or E.send*().

Author:
Mark S. Miller

Field Summary
private static MethodNode TheToStringVerb
           
private static MethodNode TheTypeVerb
           
 
Fields inherited from class org.erights.e.elib.prim.JavaMemberNode
myMember
 
Constructor Summary
StaticMethodNode(java.lang.reflect.Method method)
          Enabled:
 
Method Summary
static void defineMembers(VTable vTable, Class clazz, SafeJ safeJ)
          Enabled:
 String explain(String args)
          Enabled:
 String getDocComment()
          Enabled:
 Object innerExecute(Object self, Object[] args)
          Enabled:
 Class[] parameterTypes()
          Enabled:
 Class receiverType()
          Enabled:
 Class returnType()
          Enabled:
private static MethodNode wrapMethod(String verb)
          This indirect nonesense is needed because static init expressions may not have Exceptions in need of declaration.
 
Methods inherited from class org.erights.e.elib.prim.JavaMemberNode
addJavaMemberNodesToMap, execute, getArity, getOptTypedVerb, getVerb, makeMessageType, member, optCoerceArgs, shorten, subPrintOn, toString, traceOn
 
Methods inherited from class org.erights.e.elib.base.MethodNode
protocol, respondsTo
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TheTypeVerb

private static final MethodNode TheTypeVerb

TheToStringVerb

private static final MethodNode TheToStringVerb
Constructor Detail

StaticMethodNode

public StaticMethodNode(java.lang.reflect.Method method)
Enabled:

Method Detail

defineMembers

public static void defineMembers(VTable vTable,
                                 Class clazz,
                                 SafeJ safeJ)
                          throws AlreadyDefinedException
Enabled:

AlreadyDefinedException

explain

public String explain(String args)
Enabled:

Specified by:
explain in class JavaMemberNode

innerExecute

public Object innerExecute(Object self,
                           Object[] args)
                    throws IllegalAccessException,
                           IllegalArgumentException,
                           java.lang.reflect.InvocationTargetException
Enabled:

Specified by:
innerExecute in class JavaMemberNode
Throws:
IllegalArgumentException - if the number of actual and formal parameters differ, or if an unwrapping or method invocation conversion fails.
IllegalAccessException
java.lang.reflect.InvocationTargetException

receiverType

public Class receiverType()
Enabled:

Specified by:
receiverType in class JavaMemberNode

getDocComment

public String getDocComment()
Enabled:

Specified by:
getDocComment in class MethodNode

parameterTypes

public Class[] parameterTypes()
Enabled:

Specified by:
parameterTypes in class JavaMemberNode

returnType

public Class returnType()
Enabled:

Specified by:
returnType in class JavaMemberNode

wrapMethod

private static MethodNode wrapMethod(String verb)
This indirect nonesense is needed because static init expressions may not have Exceptions in need of declaration.



comments?