edu.berkeley.psi.tagged.api
Class Tagged

java.lang.Object
  extended by edu.berkeley.psi.tagged.api.Tagged
All Implemented Interfaces:
TaggedIF, XdrAble
Direct Known Subclasses:
Digest, Opaque

public abstract class Tagged
extends java.lang.Object
implements TaggedIF


Field Summary
protected static java.util.ArrayList<java.lang.Class<TaggedIF>> classes
          Create uninitialized Tagged objects for xdrDecode
protected static java.lang.Object initLock
           
 
Constructor Summary
Tagged()
           
 
Method Summary
protected static void addClass(int tag, java.lang.Class<TaggedIF> c)
           
protected static void addClass(int tag, java.lang.String className)
           
private static void checkClasses()
          Makes sure the classes ArrayList is initialized.
 Digest digest()
           
 Digest digest(java.lang.String alg)
           
 Digest digestWith(DigestFactory factory)
           
static TaggedIF get(XdrDecodingStream xdr)
           
 void getBody(XdrDecodingStream xdr)
           
 int getTag()
           
private static void initClasses()
          Initialize the classes ArrayList
(package private) static TaggedIF newInstance()
           
(package private) static TaggedIF newInstance(int tag)
          Create uninitialized TaggedIF objects for xdrDecode
static void put(TaggedIF t, XdrEncodingStream xdr)
           
 void put(XdrEncodingStream xdr)
           
 void putBody(XdrEncodingStream xdr)
           
 void putTag(XdrEncodingStream xdr)
           
private static void setClass(int tag, java.lang.Class<TaggedIF> c)
           
private static void setClass(int tag, java.lang.String className)
           
static int staticTag()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.acplt.oncrpc.XdrAble
xdrDecode, xdrEncode
 

Field Detail

classes

protected static java.util.ArrayList<java.lang.Class<TaggedIF>> classes
Create uninitialized Tagged objects for xdrDecode


initLock

protected static final java.lang.Object initLock
Constructor Detail

Tagged

Tagged()
Method Detail

setClass

private static final void setClass(int tag,
                                   java.lang.Class<TaggedIF> c)

setClass

private static final void setClass(int tag,
                                   java.lang.String className)

initClasses

private static void initClasses()
Initialize the classes ArrayList


checkClasses

private static final void checkClasses()
Makes sure the classes ArrayList is initialized. Uses a test and test-and-set strategy to avoid unnecessary locking.


addClass

protected static final void addClass(int tag,
                                     java.lang.Class<TaggedIF> c)

addClass

protected static final void addClass(int tag,
                                     java.lang.String className)

newInstance

static final TaggedIF newInstance(int tag)
                           throws OncRpcException
Create uninitialized TaggedIF objects for xdrDecode

Throws:
OncRpcException

newInstance

static TaggedIF newInstance()
                     throws java.lang.Exception
Throws:
java.lang.Exception

get

public static final TaggedIF get(XdrDecodingStream xdr)
                          throws OncRpcException,
                                 java.io.IOException
Throws:
OncRpcException
java.io.IOException

put

public static final void put(TaggedIF t,
                             XdrEncodingStream xdr)
                      throws OncRpcException,
                             java.io.IOException
Throws:
OncRpcException
java.io.IOException

put

public final void put(XdrEncodingStream xdr)
               throws OncRpcException,
                      java.io.IOException
Specified by:
put in interface TaggedIF
Throws:
OncRpcException
java.io.IOException

putTag

public final void putTag(XdrEncodingStream xdr)
                  throws OncRpcException,
                         java.io.IOException
Specified by:
putTag in interface TaggedIF
Throws:
OncRpcException
java.io.IOException

getTag

public final int getTag()
Specified by:
getTag in interface TaggedIF

staticTag

public static int staticTag()

putBody

public final void putBody(XdrEncodingStream xdr)
                   throws OncRpcException,
                          java.io.IOException
Specified by:
putBody in interface TaggedIF
Throws:
OncRpcException
java.io.IOException

getBody

public final void getBody(XdrDecodingStream xdr)
                   throws OncRpcException,
                          java.io.IOException
Specified by:
getBody in interface TaggedIF
Throws:
OncRpcException
java.io.IOException

digestWith

public Digest digestWith(DigestFactory factory)
                  throws OncRpcException,
                         java.io.IOException,
                         TaggedException
Specified by:
digestWith in interface TaggedIF
Throws:
OncRpcException
java.io.IOException
TaggedException

digest

public final Digest digest()
                    throws java.security.NoSuchAlgorithmException,
                           OncRpcException,
                           java.io.IOException,
                           TaggedException
Specified by:
digest in interface TaggedIF
Throws:
java.security.NoSuchAlgorithmException
OncRpcException
java.io.IOException
TaggedException

digest

public final Digest digest(java.lang.String alg)
                    throws java.security.NoSuchAlgorithmException,
                           OncRpcException,
                           java.io.IOException,
                           TaggedException
Specified by:
digest in interface TaggedIF
Throws:
java.security.NoSuchAlgorithmException
OncRpcException
java.io.IOException
TaggedException