org.erights.e.elib.prim
Class SugarMethodNode

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

public class SugarMethodNode
extends JavaMemberNode

Untamed: How a static method of a sugar class is made to appear as an instance method of an instance of the class being sugarred.

Author:
Mark S. Miller

Field Summary
private  boolean printOkFlag
           
 
Fields inherited from class org.erights.e.elib.prim.JavaMemberNode
myMember
 
Constructor Summary
SugarMethodNode(java.lang.reflect.Method method)
          Enabled:
 
Method Summary
static void defineMembers(VTable vTable, Class clazz)
          Enabled:
 String explain(String args)
          Enabled:
 String getDocComment()
          Enabled:
 Object innerExecute(Object self, Object[] args)
          Enabled:
 void lnPrintOn(TextWriter out, int priority)
          Enabled:
 Class[] parameterTypes()
          Enabled:
 Class receiverType()
          Enabled:
 Class returnType()
          Enabled:
 void subPrintOn(TextWriter out, int priority)
          Enabled: If the printOkFlag is not set, then suppress printing of this method node.
 
Methods inherited from class org.erights.e.elib.prim.JavaMemberNode
addJavaMemberNodesToMap, execute, getArity, getOptTypedVerb, getVerb, makeMessageType, member, optCoerceArgs, shorten, 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

printOkFlag

private final boolean printOkFlag
Constructor Detail

SugarMethodNode

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

Method Detail

defineMembers

public static void defineMembers(VTable vTable,
                                 Class clazz)
                          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

lnPrintOn

public void lnPrintOn(TextWriter out,
                      int priority)
               throws IOException
Enabled:

IOException

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

subPrintOn

public void subPrintOn(TextWriter out,
                       int priority)
                throws IOException
Enabled: If the printOkFlag is not set, then suppress printing of this method node.

Overrides:
subPrintOn in class JavaMemberNode
IOException


comments?