public class ENUMERATED extends ASN1Object
An ASN.1 ENUMERATED object represents an integer value out of a predefined quantity of integers. In this way, an application can define its own enumeration types whenever it intends to restrict the number of values a particular component may occupy, e.g.:
Seasons ::= ENUMERATED { spring (0), summer (1), autumn (2), winter (3) }In this example, a representative of the Seasons enumerated type only may take one of four valid values: 0 (for spring), 1 (for summer), 2 (for autumn), and 3 (for winter).
When creating a new ENUMERATED object, the integer value it represents has to be specified, e.g.:
ENUMERATED seasonsValue = new ENUMERATED(2);An application using the ENUMERATED type, itself has to take care for checking if the supplied value exists in the predefined quantity. This class only provides an utility for creating a representative of the particular type and encoding it as ENUMERATED.
When calling the getValue
method for getting the inherent
value from an ASN.1 ENUMERATED instance, a Java object of type
Integer
is returned:
Integer Value = (Integer) enumerated.getValue(); int value = Value.intValue();DER en/decoding generally is done by means of the several methods of the
DerCoder
class; decoding alternatively may be
performed by using the DerInputStream
utility.ASN1Object
,
ASN
asnType, constructed, encode_listener, indefinite_length, isStringType, stream_mode
Modifier | Constructor and Description |
---|---|
protected |
ENUMERATED()
Create an empty ENUMERATED.
|
|
ENUMERATED(int value)
Creates an ENUMERATED object for representing the given int value.
|
Modifier and Type | Method and Description |
---|---|
protected void |
decode(int length,
java.io.InputStream is)
Decodes an ENUMERATED value from the given InputStream.
|
protected void |
encode(java.io.OutputStream os)
DER encodes this ENUMERATED ASN1Object and writes the result to the given
output stream.
|
java.lang.Object |
getValue()
Returns the value of this ENUMERATED as an Integer object.
|
void |
setValue(java.lang.Object object)
Sets the value of this ENUMERATED.
|
java.lang.String |
toString()
Returns a string that represents the contents of this ENUMERATED
ASN1Object.
|
addComponent, addEncodeListener, clone, countComponents, encodeObject, getAsnType, getComponentAt, indefiniteLength, isA, isConstructed, isStringType, setIndefiniteLength
protected ENUMERATED()
public ENUMERATED(int value)
value
- the int value this ENUMERATED object should representpublic java.lang.Object getValue()
getValue
in class ASN1Object
public void setValue(java.lang.Object object)
Integer
.setValue
in class ASN1Object
object
- the Java Integer value to be set for this ENUMERATED objectprotected void encode(java.io.OutputStream os) throws java.io.IOException
encode
methods of the DerCoder
class for performing the encoding, and the DerCoder internally will call
this encode
method.encode
in class ASN1Object
os
- the output stream to which to write the datajava.io.IOException
- if an I/O error occurs while writing to the streamprotected void decode(int length, java.io.InputStream is) throws java.io.IOException, CodingException
length
bytes to
be read represent the value of an ASN.1 object of type ENUMERATED.
This is a protected method and will not be used by an application for
decoding a DER encoded ENUMERATED. An application will call one of the
decode
methods of the DerCoder
class for performing the decoding. The DerCoder then determines the number
of bytes (length
) occupied by the value of this ENUMERATED
object and internally calls this decode
method for actually
reading the value.
decode
in class ASN1Object
length
- the already decoded length, i.e. number of the bytes representing
the value of the ENUMERATED to be decodedis
- the input stream from which the DER encoded data is read injava.io.IOException
- if there is a problem with the InputStreamCodingException
- if a decoding error occurspublic java.lang.String toString()
toString
in class ASN1Object
ASN1Object.toString()