001package org.apache.commons.ssl.org.bouncycastle.asn1.x509.qualified;
002
003import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Choice;
004import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Encodable;
005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Integer;
006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object;
007import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1ObjectIdentifier;
008import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive;
009
010/**
011 * The TypeOfBiometricData object.
012 * <pre>
013 * TypeOfBiometricData ::= CHOICE {
014 *   predefinedBiometricType   PredefinedBiometricType,
015 *   biometricDataOid          OBJECT IDENTIFIER }
016 *
017 * PredefinedBiometricType ::= INTEGER {
018 *   picture(0),handwritten-signature(1)}
019 *   (picture|handwritten-signature)
020 * </pre>
021 */
022public class TypeOfBiometricData  
023    extends ASN1Object
024    implements ASN1Choice
025{
026    public static final int PICTURE                     = 0;
027    public static final int HANDWRITTEN_SIGNATURE       = 1;
028
029    ASN1Encodable      obj;
030
031    public static TypeOfBiometricData getInstance(Object obj)
032    {
033        if (obj == null || obj instanceof TypeOfBiometricData)
034        {
035            return (TypeOfBiometricData)obj;
036        }
037
038        if (obj instanceof ASN1Integer)
039        {
040            ASN1Integer predefinedBiometricTypeObj = ASN1Integer.getInstance(obj);
041            int  predefinedBiometricType = predefinedBiometricTypeObj.getValue().intValue();
042
043            return new TypeOfBiometricData(predefinedBiometricType);
044        }
045        else if (obj instanceof ASN1ObjectIdentifier)
046        {
047            ASN1ObjectIdentifier BiometricDataID = ASN1ObjectIdentifier.getInstance(obj);
048            return new TypeOfBiometricData(BiometricDataID);
049        }
050
051        throw new IllegalArgumentException("unknown object in getInstance");
052    }
053        
054    public TypeOfBiometricData(int predefinedBiometricType)
055    {
056        if (predefinedBiometricType == PICTURE || predefinedBiometricType == HANDWRITTEN_SIGNATURE)
057        {
058                obj = new ASN1Integer(predefinedBiometricType);
059        }
060        else
061        {
062            throw new IllegalArgumentException("unknow PredefinedBiometricType : " + predefinedBiometricType);
063        }        
064    }
065    
066    public TypeOfBiometricData(ASN1ObjectIdentifier BiometricDataID)
067    {
068        obj = BiometricDataID;
069    }
070    
071    public boolean isPredefined()
072    {
073        return obj instanceof ASN1Integer;
074    }
075    
076    public int getPredefinedBiometricType()
077    {
078        return ((ASN1Integer)obj).getValue().intValue();
079    }
080    
081    public ASN1ObjectIdentifier getBiometricDataOid()
082    {
083        return (ASN1ObjectIdentifier)obj;
084    }
085    
086    public ASN1Primitive toASN1Primitive()
087    {        
088        return obj.toASN1Primitive();
089    }
090}