Class SET.Template

  • All Implemented Interfaces:
    ASN1Template
    Enclosing class:
    SET

    public static class SET.Template
    extends java.lang.Object
    implements ASN1Template
    SET.Template This class is used for decoding DER-encoded SETs.
    • Constructor Detail

      • Template

        public Template()
    • Method Detail

      • addElement

        public void addElement​(ASN1Template t)
        Adds a sub-template to the end of this SET template. For example, if the ASN.1 included:
         MySet ::= SET {
              item        SubType,
              ... }
         
        the "item" element would be added to the MySet template with:
          mySet.addElement( new SubType.Template() );
         
        Parameters:
        t - Sub-template.
      • insertElementAt

        public void insertElementAt​(ASN1Template t,
                                    int index)
        Inserts the template at the given index.
        Parameters:
        t - Sub-template.
        index - Index.
      • addElement

        public void addElement​(Tag implicit,
                               ASN1Template t)
        Adds a sub-template with the given implicit tag to the end of this SET template. For example, if the ASN.1 included:
         MySet ::= SET {
              item        [0] IMPLICIT SubType,
              ... }
         
        the "item" element would be added to the MySet template with:
          mySet.addElement( new Tag(0), new SubType.Template() );
         
        Parameters:
        implicit - Implicit tag.
        t - Sub-template.
      • insertElementAt

        public void insertElementAt​(Tag implicit,
                                    ASN1Template t,
                                    int index)
        Inserts the template with the given implicit tag at the given index.
        Parameters:
        implicit - Implicit tag.
        t - Sub-template.
        index - Index.
      • addOptionalElement

        public void addOptionalElement​(ASN1Template t)
        Adds an optional sub-template to the end of this SET template. For example, if the ASN.1 included:
         MySet ::= SET {
              item        SubType OPTIONAL,
              ... }
         
        the "item" element would be added to the MySet template with:
          mySet.addOptionalElement( new SubType.Template() );
         
        Parameters:
        t - Optional sub-template.
      • insertOptionalElementAt

        public void insertOptionalElementAt​(ASN1Template t,
                                            int index)
        Inserts the optional template at the given index.
        Parameters:
        t - Optional sub-template.
        index - Index.
      • addOptionalElement

        public void addOptionalElement​(Tag implicit,
                                       ASN1Template t)
        Adds an optional sub-template with the given implicit tag to the end of this SET template. For example, if the ASN.1 included:
         MySet ::= SET {
              item        [0] IMPLICIT SubType OPTIONAL,
              ... }
         
        the "item" element would be added to the MySet template with:
          mySet.addOptionalElement( new Tag(0), new SubType.Template() );
         
        Parameters:
        implicit - Implicit tag.
        t - Optional sub-template.
      • insertOptionalElementAt

        public void insertOptionalElementAt​(Tag implicit,
                                            ASN1Template t,
                                            int index)
        Inserts the optional template with the given default value at the given index.
        Parameters:
        implicit - Implicit tag.
        t - Optional sub-template.
        index - Index.
      • addElement

        public void addElement​(ASN1Template t,
                               ASN1Value def)
        Adds a sub-template with the given default value to the end of this SET template. For example, if the ASN.1 included:
         MySet ::= SET {
              item        INTEGER DEFAULT (5),
              ... }
         
        the "item" element would be added to the MySet template with:
          mySet.addElement( new SubType.Template(), new INTEGER(5) );
         
        Parameters:
        t - Sub-template.
        def - Default value.
      • insertElementAt

        public void insertElementAt​(ASN1Template t,
                                    ASN1Value def,
                                    int index)
        Inserts the template with the given default value at the given index.
        Parameters:
        t - Sub-template.
        def - Default value.
        index - Index.
      • addElement

        public void addElement​(Tag implicit,
                               ASN1Template t,
                               ASN1Value def)
        Adds a sub-template with the given default value and implicit tag to the end of this SET template. For example, if the ASN.1 included:
         MySet ::= SET {
              item        [0] IMPLICIT INTEGER DEFAULT (5),
              ... }
         
        the "item" element would be added to the MySet template with:
          mySet.addElement( new Tag(0), new SubType.Template(), new INTEGER(5) );
         
        Parameters:
        implicit - Implicit tag.
        t - Sub-template.
        def - Default value.
      • 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.
        Parameters:
        implicit - Implicit tag.
        t - Sub-template.
        def - Default value.
        index - 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.
        Parameters:
        index - Index.
        Returns:
        Implicit tag.
      • templateAt

        public ASN1Template templateAt​(int index)
        Returns the sub-template stored at the given index.
        Parameters:
        index - Index.
        Returns:
        Sub-template.
      • isOptionalAt

        public boolean isOptionalAt​(int index)
        Returns true if the sub-template at the given index is optional.
        Parameters:
        index - Index.
        Returns:
        True if sub-template 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.
        Parameters:
        index - Index.
        Returns:
        Default value.
      • size

        public int size()
        Returns:
        The number of elements in the SET.
      • removeAllElements

        public void removeAllElements()
      • removeElementAt

        public void removeElementAt​(int index)
      • tagMatch

        public boolean tagMatch​(Tag tag)
        Determines whether the given tag satisfies this template.
        Specified by:
        tagMatch in interface ASN1Template
        Parameters:
        tag - Tag.
        Returns:
        True if tag satisfies this template.
      • decode

        public ASN1Value decode​(java.io.InputStream istream)
                         throws java.io.IOException,
                                InvalidBERException
        Decodes the input stream into a SET value.
        Specified by:
        decode in interface ASN1Template
        Parameters:
        istream - Input stream.
        Returns:
        Decoded SET value.
        Throws:
        java.io.IOException - If other error occurred.
        InvalidBERException - If there is an invalid BER encoding.
      • decode

        public ASN1Value decode​(Tag tag,
                                java.io.InputStream istream)
                         throws java.io.IOException,
                                InvalidBERException
        Decodes the input stream into a SET value with the given implicit tag.
        Specified by:
        decode in interface ASN1Template
        Parameters:
        tag - Implicit tag.
        istream - Input stream.
        Returns:
        Decoded SET value.
        Throws:
        java.io.IOException - If other error occurred.
        InvalidBERException - If there is an invalid BER encoding.