001package org.apache.commons.ssl.org.bouncycastle.asn1;
002
003/**
004 * Marker interface for CHOICE objects - if you implement this in a role your
005 * own object any attempt to tag the object implicitly will convert the tag to
006 * an explicit one as the encoding rules require.
007 * <p>
008 * If you use this interface your class should also implement the getInstance()
009 * pattern which takes a tag object and the tagging mode used.
010 * <p>
011 * <hr>
012 * <p><b>X.690</b></p>
013 * <p><b>8: Basic encoding rules</b></p>
014 * <p><b>8.13 Encoding of a choice value </b></p>
015 * <p>
016 * The encoding of a choice value shall be the same as the encoding of a value of the chosen type.
017 * <blockquote>
018 * NOTE 1 &mdash; The encoding may be primitive or constructed depending on the chosen type.
019 * <p>
020 * NOTE 2 &mdash; The tag used in the identifier octets is the tag of the chosen type,
021 * as specified in the ASN.1 definition of the choice type.
022 * </blockquote>
023 * </p>
024 */
025public interface ASN1Choice
026{
027    // marker interface
028}