sisc.modules.s2j
Class JavaObject

java.lang.Object
  extended by sisc.util.Util
      extended by sisc.data.Expression
          extended by sisc.data.Value
              extended by sisc.modules.s2j.JavaObject
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable, Immediate, ExpressionVisitee, Version
Direct Known Subclasses:
JavaNull, JavaPrimitive

public class JavaObject
extends Value

See Also:
Serialized Form

Field Summary
static byte JARRAY
           
static byte JCLASS
           
static byte JCONSTR
           
static byte JFIELD
           
static byte JMETHOD
           
static byte JNULL
           
static byte JOBJ
           
static byte JUNKN
           
protected  java.lang.Object obj
           
protected  byte objType
           
 
Fields inherited from class sisc.data.Expression
annotations, EMPTYSET
 
Fields inherited from class sisc.util.Util
BACKQUOTE, BEGIN, bundles, caseSensitive, EMPTYLIST, EMPTYVEC, EOF, ERRORK, EVAL, EXPSC, EXPTOP, FALSE, FCONT, FIVE, JEXCEPTION, LAMBDA, LOCATION, maxFloatPrecision, MESSAGE, minFloatPrecision, NAME, OTHER, PARENT, permitInterrupts, QUOTE, QUOTESYM, REPORT, SETBANG, SISC, SISC_SPECIFIC, SISCB, SOURCE_COLUMN, SOURCE_FILE, SOURCE_LINE, SYMENV, THIS, TOPLEVEL, TRUE, UNQUOTE, UNQUOTE_SPLICING, VOID, ZV
 
Fields inherited from interface sisc.util.Version
VERSION
 
Constructor Summary
JavaObject()
           
JavaObject(java.lang.Object o)
           
 
Method Summary
 java.lang.Class classOf()
           
 void deserialize(Deserializer s)
          All Expressions must implement a default (no-argument) constructor.
 void display(ValueWriter w)
           
 boolean eqv(java.lang.Object v)
          Compares this Value to another for equality according to the rules of Scheme's eqv?.
 java.lang.Object get()
           
 byte getObjType()
           
 int hashCode()
           
 void serialize(Serializer s)
          All Expressions must implement a default (no-argument) constructor.
 boolean valueEqual(Value v)
          Compares this value to another for semantic equality.
 boolean visit(ExpressionVisitor v)
           
 
Methods inherited from class sisc.data.Value
apply, displayNamedOpaque, equals, eval, express, getValue, synopsis, synopsis, toString, valueHashCode, write, writeReplace
 
Methods inherited from class sisc.data.Expression
deserializeAnnotations, getAnnotation, getAnnotation, getAnnotationKeys, getAnnotations, getName, readExternal, readResolve, serializeAnnotations, setAnnotation, setAnnotation, setName, visitAnnotations, writeExternal
 
Methods inherited from class sisc.util.Util
annotated, annotatedAppEval, append, argCheck, argsToSymbols, assq, bininport, bininstream, binoutport, binoutstream, box, character, charinport, charinreader, charoutport, charoutwriter, charsetFromString, chr, cont, currentClassLoader, env, error, error, error, error, error, error, error, expr, getDefaultCharacterSet, immutablePair, immutableVector, inport, javaExceptionToString, javaWrap, justify, length, liMessage, liMessage, liMessage, liMessage, liMessage, liMessage, liMessage, list, list, list, list, list, makeURL, mapcar, memq, nlib, num, outport, pair, pairToExpressions, pairToExpVect, pairToValues, proc, read, registerBundle, reverse, reverseInPlace, simpleErrorToString, sourceAnnotations, str, string, sym, symbol, symval, truePair, truth, truth, typeError, typeError, updateName, url, url, url, valArrayToList, valArrayToList, valArrayToVec, vec, warn, warn, warn
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

obj

protected java.lang.Object obj

JUNKN

public static final byte JUNKN
See Also:
Constant Field Values

JNULL

public static final byte JNULL
See Also:
Constant Field Values

JCLASS

public static final byte JCLASS
See Also:
Constant Field Values

JFIELD

public static final byte JFIELD
See Also:
Constant Field Values

JMETHOD

public static final byte JMETHOD
See Also:
Constant Field Values

JCONSTR

public static final byte JCONSTR
See Also:
Constant Field Values

JARRAY

public static final byte JARRAY
See Also:
Constant Field Values

JOBJ

public static final byte JOBJ
See Also:
Constant Field Values

objType

protected byte objType
Constructor Detail

JavaObject

public JavaObject()

JavaObject

public JavaObject(java.lang.Object o)
Method Detail

getObjType

public byte getObjType()

serialize

public void serialize(Serializer s)
               throws java.io.IOException
Description copied from class: Expression
All Expressions must implement a default (no-argument) constructor. Those that wish to be serialized to a heap must implement both this and the deserialize method. The Expression may use any method of the Serializer, which implements java.io.DataOutput to write its state.

Overrides:
serialize in class Expression
Parameters:
s - the Serializer
Throws:
java.io.IOException

deserialize

public void deserialize(Deserializer s)
                 throws java.io.IOException
Description copied from class: Expression
All Expressions must implement a default (no-argument) constructor. Those that wish to b serialized to a heap must implement both this and the serialize method. The Expression may use any method of the DataInput stream and the Deserializer serialization context to read its state.

Overrides:
deserialize in class Expression
Parameters:
s - the Deserializer
Throws:
java.io.IOException

visit

public boolean visit(ExpressionVisitor v)
Specified by:
visit in interface ExpressionVisitee
Overrides:
visit in class Expression

get

public java.lang.Object get()

classOf

public java.lang.Class classOf()

display

public void display(ValueWriter w)
             throws java.io.IOException
Specified by:
display in class Value
Throws:
java.io.IOException

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

eqv

public boolean eqv(java.lang.Object v)
Description copied from class: Value
Compares this Value to another for equality according to the rules of Scheme's eqv?. In SISC, this differs from eq? in that eq? is strict pointer equality.

Overrides:
eqv in class Value
Parameters:
v - the other Value

valueEqual

public boolean valueEqual(Value v)
Description copied from class: Value
Compares this value to another for semantic equality. Used to implement Scheme's 'equal?'. Subclasses must test for pointer equality as well as semantic equality, so that infinite loops on recursive structures are less likely.

Overrides:
valueEqual in class Value
Parameters:
v - the other Value