com.objsys.asn1j.runtime
Class Asn1CharString

java.lang.Object
  extended by com.objsys.asn1j.runtime.Asn1Type
      extended by com.objsys.asn1j.runtime.Asn1CharString
All Implemented Interfaces:
Asn1TypeIF, java.io.Serializable, java.lang.Cloneable
Direct Known Subclasses:
Asn18BitCharString, Asn1BMPString, Asn1OID_IRI, Asn1UTF8String, Asn1VarWidthCharString

public abstract class Asn1CharString
extends Asn1Type

This is a container class for holding the components of an ASN.1 character string value. Subclasses are defined for all of the different string types.

See Also:
Serialized Form

Field Summary
protected  java.lang.StringBuffer mStringBuffer
          The mStringBuffer member variable is used to do internal operations on a string being encoded or decoded.
 java.lang.String value
          The value public member variable is used to hold the string value to be encoded or the results of a decode operation.
 
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, 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
protected Asn1CharString(short typeCode)
          This constructor creates an empty string that can be used in a decode method call to receive a string value.
protected Asn1CharString(java.lang.String data, short typeCode)
          This constructor initializes a character string from the given string data.
 
Method Summary
protected  void decode(Asn1BerDecodeBuffer buffer, boolean explicit, int implicitLength, Asn1Tag tag)
          This method decodes an ASN.1 character string value including the UNIVERSAL tag value and length if explicit tagging is specified.
 void decode(Asn1JsonDecodeBuffer buffer)
          Decode ASN.1 restricted character string from JSON.
protected  void decode(Asn1PerDecodeBuffer buffer, int abpc, int ubpc, Asn1CharSet charSet)
          This method decodes an ASN.1 character string value in accordance with the packed encoding rules (PER).
protected  void decode(Asn1PerDecodeBuffer buffer, int abpc, int ubpc, Asn1CharSet charSet, long lower, long upper)
          This overloaded version of the decode method decodes an ASN.1 character string value in accordance with the packed encoding rules (PER).
 void decodeXER(java.lang.String buffer, java.lang.String attrs)
          This method decodes ASN.1 8-bit character string types including IA5String, PrintableString, NumericString, etc.
 void decodeXML(java.lang.String buffer, java.lang.String attrs)
          This method decodes ASN.1 8-bit character string types including IA5String, PrintableString, NumericString, etc.
protected  int encode(Asn1BerEncodeBuffer buffer, boolean explicit, Asn1Tag tag)
          This method encodes ASN.1 8-bit character string types including IA5String, PrintableString, NumericString, etc.
 void encode(Asn1JsonOutputStream out)
          Encode the value of this object as a JSON string.
protected  void encode(Asn1PerEncodeBuffer buffer, int abpc, int ubpc, Asn1CharSet charSet)
          This method encodes an ASN.1 character string value in accordance with the packed encoding rules (PER).
protected  void encode(Asn1PerEncodeBuffer buffer, int abpc, int ubpc, Asn1CharSet charSet, long lower, long upper)
          This overloaded version of the encode method encodes an ASN.1 character string value in accordance with the packed encoding rules (PER).
 void encode(Asn1XerEncoder buffer, java.lang.String elemName)
          This method encodes ASN.1 8-bit character string types including IA5String, PrintableString, NumericString, etc.
 void encode(Asn1XmlEncoder buffer, java.lang.String elemName, java.lang.String nsPrefix)
          This method encodes ASN.1 8-bit character string types including IA5String, PrintableString, NumericString, etc.
 boolean equals(java.lang.Object cs)
          This method compares this character string value to the given value for equality.
 boolean equals(java.lang.String value)
          This method compares this character string value to the given value for equality.
 int getLength()
          This method will return the length of the character string in characters.
 int hashCode()
          This method returns the hashCode for this character string.
 java.lang.String toString()
          This method will return a string representation of the value.
 boolean validate(Asn1CharSet charSet)
          This method will attempt to validate a string against its internal character set.
 
Methods inherited from class com.objsys.asn1j.runtime.Asn1Type
clone, decode, decode, decode, decode, decode, decode, decode, encode, encode, encode, encode, encode, encode, equals, 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

value

public transient java.lang.String value
The value public member variable is used to hold the string value to be encoded or the results of a decode operation.


mStringBuffer

protected transient java.lang.StringBuffer mStringBuffer
The mStringBuffer member variable is used to do internal operations on a string being encoded or decoded.

Constructor Detail

Asn1CharString

protected Asn1CharString(short typeCode)
This constructor creates an empty string that can be used in a decode method call to receive a string value.

Parameters:
typeCode - Universal ID code for ASN.1 character string

Asn1CharString

protected Asn1CharString(java.lang.String data,
                         short typeCode)
This constructor initializes a character string from the given string data.

Parameters:
data - Character string
typeCode - Universal ID code for ASN.1 character string
Method Detail

decode

protected void decode(Asn1BerDecodeBuffer buffer,
                      boolean explicit,
                      int implicitLength,
                      Asn1Tag tag)
               throws Asn1Exception,
                      java.io.IOException
This method decodes an ASN.1 character string value including the UNIVERSAL tag value and length if explicit tagging is specified. It is a protected method that can only be accessed by objects subclassed from this type. Since character strings in Java are encoded in two bytes by default, this method explicitly takes the lower byte from the ASN.1-byte to Java-character conversion.

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

protected int encode(Asn1BerEncodeBuffer buffer,
                     boolean explicit,
                     Asn1Tag tag)
              throws Asn1Exception
This method encodes ASN.1 8-bit character string types including IA5String, PrintableString, NumericString, etc. The UNIVERSAL tag value and length is also encoded if explicit tagging is specified (the universal identifier must be provided by the caller).

Parameters:
buffer - Encode message buffer object
explicit - Flag indicating explicit tagging should be done
tag - Universal tag to apply
Returns:
Length in octets of encoded component
Throws:
Asn1Exception

decode

protected void decode(Asn1PerDecodeBuffer buffer,
                      int abpc,
                      int ubpc,
                      Asn1CharSet charSet)
               throws Asn1Exception,
                      java.io.IOException
This method decodes an ASN.1 character string value in accordance with the packed encoding rules (PER). This version of the method assumes that a permitted alphabet constraint has been specified that would reduce the the number of bits-per-character from the default character set. It also assumes a general length determinant is present (i.e. there is not size constraint). The decoded result is stored in the public value member variable.

Parameters:
buffer - Decode message buffer object
abpc - Number of bits per character (aligned)
ubpc - Number of bits per character (unaligned)
charSet - Object representing the permitted alphabet constraint character set (optional)
Throws:
Asn1Exception
java.io.IOException

decode

protected void decode(Asn1PerDecodeBuffer buffer,
                      int abpc,
                      int ubpc,
                      Asn1CharSet charSet,
                      long lower,
                      long upper)
               throws Asn1Exception,
                      java.io.IOException
This overloaded version of the decode method decodes an ASN.1 character string value in accordance with the packed encoding rules (PER). This version of the method assumes a size constraint is present but no permitted alphabet constraint. The decoded result is stored in the public value member variable.

Parameters:
buffer - Decode message buffer object
abpc - Number of bits per character (aligned)
ubpc - Number of bits per character (unaligned)
charSet - Object representing permitted alphabet constraint character set (optional)
lower - Effective size constraint lower bound
upper - Effective size constraint upper bound
Throws:
Asn1Exception
java.io.IOException

encode

protected void encode(Asn1PerEncodeBuffer buffer,
                      int abpc,
                      int ubpc,
                      Asn1CharSet charSet)
               throws Asn1Exception,
                      java.io.IOException
This method encodes an ASN.1 character string value in accordance with the packed encoding rules (PER). This version of the method assumes no permitted alphabet or size constraints. The value to encode is stored in the public value member variable.

Parameters:
buffer - Encode message buffer object
abpc - Number of bits per character (aligned)
ubpc - Number of bits per character (unaligned)
charSet - Object representing the permitted alphabet constraint character set (optional)
Throws:
Asn1Exception
java.io.IOException

encode

protected void encode(Asn1PerEncodeBuffer buffer,
                      int abpc,
                      int ubpc,
                      Asn1CharSet charSet,
                      long lower,
                      long upper)
               throws Asn1Exception,
                      java.io.IOException
This overloaded version of the encode method encodes an ASN.1 character string value in accordance with the packed encoding rules (PER). This version of the method assumes a size constraint is present but no permitted alphabet constraint. The value to encode is stored in the public value member variable.

Parameters:
buffer - Encode message buffer object
abpc - Number of bits per character (aligned)
ubpc - Number of bits per character (unaligned)
charSet - Object representing the permitted alphabet constraint character set (optional)
lower - Effective size constraint lower bound
upper - Effective size constraint upper bound
Throws:
Asn1Exception
java.io.IOException

encode

public void encode(Asn1XerEncoder buffer,
                   java.lang.String elemName)
            throws java.io.IOException,
                   Asn1Exception
This method encodes ASN.1 8-bit character string types including IA5String, PrintableString, NumericString, etc. using the XML encoding rules (XER).

Specified by:
encode in interface Asn1TypeIF
Overrides:
encode in class Asn1Type
Parameters:
buffer - Encode message buffer object
elemName - XML element name used to wrap string
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 ASN.1 8-bit character string types including IA5String, PrintableString, NumericString, etc. 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 ASN.1 8-bit character string types including IA5String, PrintableString, NumericString, etc. using the XML Encoding as specified in the XML schema standard(asn2xsd).

Parameters:
buffer - Encode message buffer object
elemName - XML element name used to wrap string
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 ASN.1 8-bit character string types including IA5String, PrintableString, NumericString, etc. 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 restricted character string from JSON.

Parameters:
buffer -
Throws:
java.io.IOException

encode

public void encode(Asn1JsonOutputStream out)
            throws java.io.IOException
Encode the value of this object as a JSON string.

Parameters:
out -
Throws:
java.io.IOException

equals

public boolean equals(java.lang.String value)
This method compares this character string value to the given value for equality.

Parameters:
value - String value

hashCode

public int hashCode()
This method returns the hashCode for this character string.

Overrides:
hashCode in class Asn1Type

equals

public boolean equals(java.lang.Object cs)
This method compares this character string value to the given value for equality. Strings that are orthographically identical but of different types (e.g., UTF8String "123" and NumericString "123") are not equal.

Overrides:
equals in class java.lang.Object
Parameters:
cs - Character string object reference

getLength

public int getLength()
              throws Asn1InvalidLengthException
This method will return the length of the character string in characters.

Overrides:
getLength in class Asn1Type
Returns:
Number of characters.
Throws:
Asn1InvalidLengthException

validate

public boolean validate(Asn1CharSet charSet)
This method will attempt to validate a string against its internal character set.

Returns:
True or False.

toString

public java.lang.String toString()
This method will return a string representation of the value. The format is the ASN.1 vlaue format for this type..

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