Overview | Package | Class | Tree | Deprecated | Index | Help
| JSS 3.3
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.mozilla.jss.asn1
Class SEQUENCE.Template

    java.lang.Object
      |
      +--org.mozilla.jss.asn1.SEQUENCE.Template

All Implemented Interfaces:
  ASN1Template

Direct Known Subclasses:
  Encoding.Template

Enclosing class:
  SEQUENCE

public static class SEQUENCE.Template
extends java.lang.Object
implements ASN1Template

A class for constructing a `SEQUENCE` from its BER encoding. It is an ordered collection of sub-templates. Each sub-template can be marked optional, or a default value can be given.

Constructor Summary
`SEQUENCE.Template()`

Method Summary
`void` | `addElement(ASN1Template t)` Adds a sub-template to the end of this SEQUENCE template.
`void` | `addElement(ASN1Template t, ASN1Value def)` Adds a sub-template with a default value.
`void` | `addElement(Tag implicitTag, ASN1Template t)` Adds a sub-template to the end of this SEQUENCE template, with the given implicit tag.
`void` | `addElement(Tag implicitTag, ASN1Template t, ASN1Value def)` Adds a sub-template with a default value and an implicit tag.
`void` | `addOptionalElement(ASN1Template t)` Adds an optional sub-template.
`void` | `addOptionalElement(Tag implicitTag, ASN1Template t)` Adds an optional sub-template with an implicit tag.
`ASN1Value` | `decode(java.io.InputStream istream)` Decodes a SEQUENCE from its BER encoding.
`ASN1Value` | `decode(Tag tag, java.io.InputStream istream)` Decodes a SEQUENCE from its BER encoding, where the SEQUENCE itself has an implicit tag.
`ASN1Value` | `defaultAt(int index)` Returns the default value for the sub-template at the given index.
`Tag` | `implicitTagAt(int index)` Returns the implicit tag of the item stored at the given index.
`void` | `insertElementAt(ASN1Template t, ASN1Value def, int index)` Inserts the template with the given default value at the given index.
`void` | `insertElementAt(ASN1Template t, int index)` Inserts the template at the given index.
`void` | `insertElementAt(Tag implicit, ASN1Template t, ASN1Value def, int index)` Inserts the template with the given implicit tag and given default value at the given index.
`void` | `insertElementAt(Tag implicit, ASN1Template t, int index)` Inserts the template with the given implicit tag at the given index.
`void` | `insertOptionalElementAt(ASN1Template t, int index)` Inserts the optional template at the given index.
`void` | `insertOptionalElementAt(Tag implicit, ASN1Template t, int index)` Inserts the optional template with the given default value at the given index.
`boolean` | `isOptionalAt(int index)` Returns whether the sub-template at the given index is optional.
`void` | `removeAllElements()` Removes all sub-templates from this SEQUENCE template.
`void` | `removeElementAt(int index)` Removes the sub-template at the given index.
`int` | `size()` Returns the number of elements in this SEQUENCE template.
`boolean` | `tagMatch(Tag tag)` Determines whether the given tag will satisfy this template.
`ASN1Template` | `templateAt(int index)` Returns the sub-template stored at the given index.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SEQUENCE.Template

    public SEQUENCE.Template()

Method Detail

### addElement

    public void addElement(ASN1Template t)

  Adds a sub-template to the end of this SEQUENCE template. For example, if the ASN.1 included:

       MySequence ::= SEQUENCE {
            item        SubType,
            ... }

  the "item" element would be added to the MySequence template with:

        mySequence.addElement( new SubType.Template() );

### insertElementAt

    public void insertElementAt(ASN1Template t,
                                int index)

  Inserts the template at the given index.

### addElement

    public void addElement(Tag implicitTag,
                           ASN1Template t)

  Adds a sub-template to the end of this SEQUENCE template, with the given implicit tag. For example, if the ASN.1 were:

       MySequence ::= SEQUENCE {
            item        [0] IMPLICIT  SubType,
            ... }

  the "item" element would be added to the MySequence template with:

        mySequence.addElement( new Tag(0), new SubType.Template());

### insertElementAt

    public void insertElementAt(Tag implicit,
                                ASN1Template t,
                                int index)

  Inserts the template with the given implicit tag at the given index.

### addOptionalElement

    public void addOptionalElement(ASN1Template t)

  Adds an optional sub-template. For example, if the ASN.1 were:

       MySequence ::= SEQUENCE {
            item        SubType OPTIONAL,
            ... }

  the "item" element would be added to the MySequence template with:

        mySequence.addOptionalElement( new SubType.Template() );

### insertOptionalElementAt

    public void insertOptionalElementAt(ASN1Template t,
                                        int index)

  Inserts the optional template at the given index.

### addOptionalElement

    public void addOptionalElement(Tag implicitTag,
                                   ASN1Template t)

  Adds an optional sub-template with an implicit tag. For example, if the ASN.1 were:

       MySequence ::= SEQUENCE {
            item        [0] IMPLICIT SubType OPTIONAL,
            ... }

  the "item" element would be added to the MySequence template with:

        mySequence.addOptionalElement( new SubType.Template() );

### insertOptionalElementAt

    public void insertOptionalElementAt(Tag implicit,
                                        ASN1Template t,
                                        int index)

  Inserts the optional template with the given default value at the given index.

### addElement

    public void addElement(ASN1Template t,
                           ASN1Value def)

  Adds a sub-template with a default value. For example, if the ASN.1 were:

       MySequence ::= SEQUENCE {
            version     INTEGER DEFAULT 1,
            ... }

  the "item" element would be added to the MySequence template with:

        mySequence.addElement( new INTEGER.Template(), new INTEGER(1) );

  Parameters:
    `def` - The default value for this field, which will be used if no value is supplied by the encoded structure. It must be of the same type as what the template would produce.

### insertElementAt

    public void insertElementAt(ASN1Template t,
                                ASN1Value def,
                                int index)

  Inserts the template with the given default value at the given index.

### addElement

    public void addElement(Tag implicitTag,
                           ASN1Template t,
                           ASN1Value def)

  Adds a sub-template with a default value and an implicit tag. For example, if the ASN.1 were:

       MySequence ::= SEQUENCE {
            version     [0] IMPLICIT INTEGER DEFAULT 1,
            ... }

  the "item" element would be added to the MySequence template with:

        mySequence.addElement( new Tag(0), new INTEGER.Template(),
            new INTEGER(1) );

  Parameters:
    `def` - The default value for this field, which will be used if no value is supplied by the encoded structure. It must be of the same type as what the template would produce.

### insertElementAt

    public void insertElementAt(Tag implicit,
                                ASN1Template t,
                                ASN1Value def,
                                int index)

  Inserts the template with the given implicit tag and given default value at the given index.

### implicitTagAt

    public Tag implicitTagAt(int index)

  Returns the implicit tag of the item stored at the given index. May be NULL if no implicit tag was specified.

### templateAt

    public ASN1Template templateAt(int index)

  Returns the sub-template stored at the given index.

### isOptionalAt

    public boolean isOptionalAt(int index)

  Returns whether the sub-template at the given index is optional.

### defaultAt

    public ASN1Value defaultAt(int index)

  Returns the default value for the sub-template at the given index. May return NULL if no default value was specified.

### size

    public int size()

  Returns the number of elements in this SEQUENCE template.

### removeAllElements

    public void removeAllElements()

  Removes all sub-templates from this SEQUENCE template.

### removeElementAt

    public void removeElementAt(int index)

  Removes the sub-template at the given index.

### tagMatch

    public boolean tagMatch(Tag tag)

  Description copied from interface: `ASN1Template`
  Determines whether the given tag will satisfy this template.

  Specified by:
    `tagMatch` in interface `ASN1Template`

### decode

    public ASN1Value decode(java.io.InputStream istream)
                     throws java.io.IOException,
                            InvalidBERException

  Decodes a SEQUENCE from its BER encoding.

  Specified by:
    `decode` in interface `ASN1Template`
  Parameters:
    `istream` - Must support marking (markSupported() == true). For example, ByteArrayInputStream and BufferedInputStream support marking, but FileInputStream does not. If your source does not support marking, you can wrap it in a BufferedInputStream.
    `java.io.IOException`
    `InvalidBERException`

### decode

    public ASN1Value decode(Tag tag,
                            java.io.InputStream istream)
                     throws java.io.IOException,
                            InvalidBERException

  Decodes a SEQUENCE from its BER encoding, where the SEQUENCE itself has an implicit tag.

  Specified by:
    `decode` in interface `ASN1Template`
  Parameters:
    `istream` - Must support marking (markSupported() == true). For example, ByteArrayInputStream and BufferedInputStream support marking, but FileInputStream does not. If your source does not support marking, you can wrap it in a BufferedInputStream.
    `java.io.IOException`
    `InvalidBERException`

Overview | Package | Class | Tree | Deprecated | Index | Help
| JSS 3.3
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD