OSDN Git Service

version 0.2
[bm-asn1/bm-asn1.git] / jp / bitmeister / asn1 / type / builtin / RELATIVE_OID.java
1 /*
2  * Copyright 2011 BitMeister Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package jp.bitmeister.asn1.type.builtin;
17
18 import java.util.List;
19
20 import jp.bitmeister.asn1.annotation.ASN1BuiltIn;
21 import jp.bitmeister.asn1.annotation.ASN1Identifier;
22 import jp.bitmeister.asn1.annotation.ASN1Tag;
23 import jp.bitmeister.asn1.annotation.ASN1XmlTypeName;
24 import jp.bitmeister.asn1.processor.ASN1Visitor;
25 import jp.bitmeister.asn1.type.ASN1TagClass;
26 import jp.bitmeister.asn1.type.ASN1TagMode;
27
28 /**
29  * Represents ASN.1 'RELATIVE-OID' type.
30  * 
31  * <p>
32  * An instance of this class represents an 'RELATIVE-OID' type data and
33  * contains a {@code List} of {@code Integer}. Each element of the {@code List}
34  * represents an object id component.
35  * </p>
36  * 
37  * @author WATANABE, Jun. <jwat at bitmeister.jp>
38  */
39 @ASN1BuiltIn
40 @ASN1Identifier("RELATIVE-OID")
41 @ASN1XmlTypeName("RELATIVE_OID")
42 @ASN1Tag(tagClass = ASN1TagClass.UNIVERSAL, value = 13, tagMode = ASN1TagMode.IMPLICIT)
43 public class RELATIVE_OID extends OBJECT_IDENTIFIER {
44         
45         /**
46          * Instantiates an empty {@code RELATIVE_OID}.
47          */
48         public RELATIVE_OID() {
49         }
50
51         /**
52          * Instantiates an {@code RELATIVE_OID} and initialize it with the
53          * {@code List<Integer>} value.
54          * 
55          * @param value
56          *            the {@code List} of {@code Integer} represents an object
57          *            identifier.
58          */
59         public RELATIVE_OID(List<Integer> value) {
60                 set(value);
61         }
62
63         /**
64          * Instantiates an {@code RELATIVE_OID} and initialize it with the
65          * array of {@code int} value.
66          * 
67          * @param value
68          *            the array of {@code int} represents an object identifier.
69          */
70         public RELATIVE_OID(int... value) {
71                 set(value);
72         }
73         
74         /*
75          * (non-Javadoc)
76          * 
77          * @see
78          * jp.bitmeister.asn1.type.ASN1Type#accept(jp.bitmeister.asn1.processor.
79          * ASN1Visitor)
80          */
81         @Override
82         public <R, E extends Throwable> R accept(ASN1Visitor<R, E> visitor) throws E {
83                 return visitor.visit(this);
84         }
85
86 }