com.objsys.asn1j.runtime
Class Asn1ObjectIdentifier

java.lang.Object
  extended by com.objsys.asn1j.runtime.Asn1Type
      extended by com.objsys.asn1j.runtime.Asn1ObjectIdentifier
All Implemented Interfaces:
Asn1TypeIF, java.io.Serializable, java.lang.Cloneable
Direct Known Subclasses:
Asn1RelativeOID

public class Asn1ObjectIdentifier
extends Asn1Type

This is a container class for holding the components of an ASN.1 object identifier value.

See Also:
Serialized Form

Field Summary
static int MAXSUBIDS
          The MAXSUBIDS constant specifies the maximum number of subidentifiers that can appear in an OID value (128).
static Asn1Tag TAG
          The TAG constant describes the universal tag for this data type (UNIVERSAL 6).
 int[] value
          The value public member variable is where the object identifier value is stored.
 
Fields inherited from class com.objsys.asn1j.runtime.Asn1Type
BIT_STRING, BMPString, BOOLEAN, DATE, DATE_TIME, DURATION, ENUMERATED, EOC, EXTERNAL, GeneralString, GeneralTime, GraphicString, IA5String, INTEGER, mAsn1TypeName, NULL, NumericString, OBJECT_IDENTIFIER, ObjectDescriptor, OCTET_STRING, OID_IRI, OpenType, PrintableString, REAL, RELATIVE_OID_IRI, RelativeOID, SEQUENCE, SET, T61String, TeletexString, TIME, TIME_OF_DAY, UniversalString, UTCTime, UTF8String, VideotexString, VisibleString
 
Constructor Summary
Asn1ObjectIdentifier()
          This constructor creates an empty object identifier that can be used in a decode method call to receive an OID value.
Asn1ObjectIdentifier(int[] value_)
          This constructor initializes the object identifier from the given array of integer subidentifier values.
 
Method Summary
 void append(int[] value2)
          This method appends an object identifier value onto the existing value.
 void decode(Asn1BerDecodeBuffer buffer, boolean explicit, int implicitLength)
          This method decodes an ASN.1 object identifier value including the UNIVERSAL tag value and length if explicit tagging is specified.
 void decode(Asn1JsonDecodeBuffer buffer)
          Decode ASN.1 OBJECT-IDENTIFIER from JSON.
 void decode(Asn1PerDecodeBuffer buffer)
          This method decodes an ASN.1 object identifier value using the packed encoding rules (PER).
 void decodeXER(java.lang.String buffer, java.lang.String attrs)
          This method decodes an ASN.1 object identifier value using the XML encoding rules (XER).
 void decodeXML(java.lang.String buffer, java.lang.String attrs)
          This method decodes an ASN.1 object identifier value using the XML schema encoding rules.
 int encode(Asn1BerEncodeBuffer buffer, boolean explicit)
          This method encodes an ASN.1 object identifier value including the UNIVERSAL tag value and length if explicit tagging is specified.
 void encode(Asn1BerOutputStream out, boolean explicit)
          This method encodes and writes to the stream an ASN.1 object identifier value including the UNIVERSAL tag value and length if explicit tagging is specified.
 void encode(Asn1JsonOutputStream outstream)
          Encode this object identifier to JSON.
 void encode(Asn1PerEncodeBuffer buffer)
          This method encodes an ASN.1 object identifier value using the packed encoding rules (PER).
 void encode(Asn1PerOutputStream out)
          This method encodes an ASN.1 object identifier value using the packed encoding rules (PER).
 void encode(Asn1XerEncoder buffer, java.lang.String elemName)
          This method encodes an ASN.1 object identifier value using the XML encoding rules (XER).
 void encode(Asn1XmlEncoder buffer, java.lang.String elemName, java.lang.String nsPrefix)
          This method encodes an ASN.1 object identifier value using the XML Encoding as specified in the XML schema standard(asn2xsd).
 boolean equals(java.lang.Object oid_)
          This method compares this object identifier to the given one for equality.
 java.lang.String getAsn1TypeName()
          Returns the ASN.1 type name.
 int hashCode()
          This method returns the hash code for the Asn1ObjectIdentifier.
 java.lang.String toString()
          This method will return a string representation of the OID value.
 java.lang.String toXMLValue()
          Return the XML value representation (defined in X.680) for this object identifier.
protected  void validate()
          Do some minimal validation.
 
Methods inherited from class com.objsys.asn1j.runtime.Asn1Type
clone, decode, decode, decode, decode, decode, encode, encode, equals, getLength, getTypeName, indent, isOpenType, matchTag, matchTag, pdiag, print, setKey, setOpenType
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

TAG

public static final Asn1Tag TAG
The TAG constant describes the universal tag for this data type (UNIVERSAL 6).


MAXSUBIDS

public static final int MAXSUBIDS
The MAXSUBIDS constant specifies the maximum number of subidentifiers that can appear in an OID value (128).

See Also:
Constant Field Values

value

public transient int[] value
The value public member variable is where the object identifier value is stored.

Constructor Detail

Asn1ObjectIdentifier

public Asn1ObjectIdentifier()
This constructor creates an empty object identifier that can be used in a decode method call to receive an OID value.


Asn1ObjectIdentifier

public Asn1ObjectIdentifier(int[] value_)
This constructor initializes the object identifier from the given array of integer subidentifier values.

Parameters:
value_ - Array of subidentifiers
Method Detail

getAsn1TypeName

public java.lang.String getAsn1TypeName()
Returns the ASN.1 type name.

Overrides:
getAsn1TypeName in class Asn1Type
Returns:
The ASN.1 type name OBJECT IDENTIFIER.

append

public void append(int[] value2)
This method appends an object identifier value onto the existing value. A typical use of this method would be for SNMP objects to create the base and index parts.

Parameters:
value2 - Array of subidentifiers to append

decode

public void decode(Asn1BerDecodeBuffer buffer,
                   boolean explicit,
                   int implicitLength)
            throws Asn1Exception,
                   java.io.IOException
This method decodes an ASN.1 object identifier value including the UNIVERSAL tag value and length if explicit tagging is specified.

Specified by:
decode in interface Asn1TypeIF
Overrides:
decode in class Asn1Type
Parameters:
buffer - Decode message buffer object
explicit - Flag indicating element is explicitly tagged
implicitLength - Length of contents if implicit
Throws:
Asn1Exception
java.io.IOException

encode

public int encode(Asn1BerEncodeBuffer buffer,
                  boolean explicit)
           throws Asn1Exception
This method encodes an ASN.1 object identifier value including the UNIVERSAL tag value and length if explicit tagging is specified.

Specified by:
encode in interface Asn1TypeIF
Overrides:
encode in class Asn1Type
Parameters:
buffer - Encode message buffer object
explicit - Flag indicating explicit tagging should be done
Returns:
Length of encoded component in octets
Throws:
Asn1Exception

decode

public void decode(Asn1PerDecodeBuffer buffer)
            throws Asn1Exception,
                   java.io.IOException
This method decodes an ASN.1 object identifier value using the packed encoding rules (PER).

Specified by:
decode in interface Asn1TypeIF
Overrides:
decode in class Asn1Type
Parameters:
buffer - Decode message buffer object
Throws:
Asn1Exception
java.io.IOException

encode

public void encode(Asn1PerEncodeBuffer buffer)
            throws Asn1Exception,
                   java.io.IOException
This method encodes an ASN.1 object identifier value using the packed encoding rules (PER). The value to be encoded is stored in the value public member variable within this class.

Specified by:
encode in interface Asn1TypeIF
Overrides:
encode in class Asn1Type
Parameters:
buffer - Encode message buffer object
Throws:
Asn1Exception
java.io.IOException

encode

public void encode(Asn1XerEncoder buffer,
                   java.lang.String elemName)
            throws java.io.IOException,
                   Asn1Exception
This method encodes an ASN.1 object identifier value using the XML encoding rules (XER).

Specified by:
encode in interface Asn1TypeIF
Overrides:
encode in class Asn1Type
Parameters:
buffer - Encode message buffer object
elemName - Element name
Throws:
java.io.IOException - Any exception thrown by the underlying stream.
Asn1Exception - Thrown, if operation is failed.

decodeXER

public void decodeXER(java.lang.String buffer,
                      java.lang.String attrs)
               throws Asn1Exception
This method decodes an ASN.1 object identifier value using the XML encoding rules (XER).

Parameters:
buffer - String containing data to be decoded
attrs - Attributes string from element tag
Throws:
Asn1Exception

encode

public void encode(Asn1XmlEncoder buffer,
                   java.lang.String elemName,
                   java.lang.String nsPrefix)
            throws java.io.IOException,
                   Asn1Exception
This method encodes an ASN.1 object identifier value using the XML Encoding as specified in the XML schema standard(asn2xsd).

Parameters:
buffer - Encode message buffer object
elemName - Element name
nsPrefix - XML element name space prefix
Throws:
java.io.IOException
Asn1Exception

decodeXML

public void decodeXML(java.lang.String buffer,
                      java.lang.String attrs)
               throws Asn1Exception
This method decodes an ASN.1 object identifier value using the XML schema encoding rules.

Specified by:
decodeXML in interface Asn1TypeIF
Overrides:
decodeXML in class Asn1Type
Parameters:
buffer - String containing data to be decoded
attrs - Attributes string from element tag
Throws:
Asn1Exception

decode

public void decode(Asn1JsonDecodeBuffer buffer)
            throws java.io.IOException
Decode ASN.1 OBJECT-IDENTIFIER from JSON.

Parameters:
buffer -
Throws:
java.io.IOException

encode

public void encode(Asn1JsonOutputStream outstream)
            throws java.io.IOException
Encode this object identifier to JSON.

Throws:
java.io.IOException

equals

public boolean equals(java.lang.Object oid_)
This method compares this object identifier to the given one for equality.

Overrides:
equals in class java.lang.Object
Parameters:
oid_ - Object identifier value

hashCode

public int hashCode()
This method returns the hash code for the Asn1ObjectIdentifier.

Overrides:
hashCode in class Asn1Type

validate

protected void validate()
Do some minimal validation. Subclasses may override this to adjust for their validation rules (e.g. Asn1RelativeOID overrides this to be more lax). Minimally, the implementation should enforce that value is not null and that there is at least one arc.


toXMLValue

public java.lang.String toXMLValue()
Return the XML value representation (defined in X.680) for this object identifier.

Throws:
Asn1InvalidObjectIDException - if this object does not represent a valid object identifier (only some basic validation is done).

toString

public java.lang.String toString()
This method will return a string representation of the OID value. The format is the ASN.1 value format for this type. Note that textual subidentifiers are not used, only numeric values..

Overrides:
toString in class java.lang.Object
Returns:
Stringified representation of the value

encode

public void encode(Asn1BerOutputStream out,
                   boolean explicit)
            throws Asn1Exception,
                   java.io.IOException
This method encodes and writes to the stream an ASN.1 object identifier value including the UNIVERSAL tag value and length if explicit tagging is specified. This overloaded version uses the Basic Encoding Rules (BER).

Specified by:
encode in interface Asn1TypeIF
Overrides:
encode in class Asn1Type
Parameters:
out - BER Output Stream object
explicit - Flag indicating explicit tagging should be done
Throws:
java.io.IOException - Any exception thrown by the underlying OutputStream.
Asn1Exception - Thrown, if operation is failed.

encode

public void encode(Asn1PerOutputStream out)
            throws Asn1Exception,
                   java.io.IOException
This method encodes an ASN.1 object identifier value using the packed encoding rules (PER). The value to be encoded is stored in the value public member variable within this class.

Specified by:
encode in interface Asn1TypeIF
Overrides:
encode in class Asn1Type
Parameters:
out - PER Output Stream object
Throws:
java.io.IOException - Any exception thrown by the Asn1PerOutputStream.
Asn1Exception - Thrown, if operation is failed.