2 * Copyright 2011 BitMeister Inc.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
16 package jp.bitmeister.asn1.type.builtin;
18 import jp.bitmeister.asn1.annotation.ASN1BuiltIn;
19 import jp.bitmeister.asn1.processor.ASN1Visitor;
20 import jp.bitmeister.asn1.type.ASN1TagClass;
21 import jp.bitmeister.asn1.type.ASN1Type;
22 import jp.bitmeister.asn1.type.PrimitiveType;
25 * Represents ASN.1 'ANY' type.
28 * An instance of this class represents an 'ANY' type data, and has an
29 * {@code ASN1Type} value to contain any type of ASN.1 data.
32 * @author WATANABE, Jun. <jwat at bitmeister.jp>
35 public class ANY extends PrimitiveType<ASN1Type> {
38 * Instantiates an empty {@code ANY}.
44 * Instantiates an {@code ANY} and initialize it with the {@code ASN1Type}
48 * The ASN.1 data to be assigned.
50 public ANY(ASN1Type value) {
57 * @see jp.bitmeister.asn1.type.PrimitiveType#hasValue()
60 public boolean hasValue() {
61 if (value() != null) {
62 return value().hasValue();
70 * @see jp.bitmeister.asn1.type.ASN1Type#validate()
73 public void validate() {
81 * jp.bitmeister.asn1.type.ASN1Type#matches(jp.bitmeister.asn1.type.ASN1TagClass
85 public boolean matches(ASN1TagClass tagClass, int tagNumber) {
92 * @see jp.bitmeister.asn1.type.PrimitiveType#hashCode()
95 public int hashCode() {
103 * jp.bitmeister.asn1.type.ASN1Type#accept(jp.bitmeister.asn1.processor.
107 public <R, E extends Throwable> R accept(ASN1Visitor<R, E> visitor) throws E {
108 return visitor.visit(this);