1 package com.lowagie.bc.asn1; 2 3 import java.io.IOException; 4 import java.math.BigInteger; 5 6 public class DEREnumerated 7 extends DERObject 8 { 9 byte[] bytes; 10 11 16 public static DEREnumerated getInstance( 17 Object obj) 18 { 19 if (obj == null || obj instanceof DEREnumerated) 20 { 21 return (DEREnumerated)obj; 22 } 23 24 if (obj instanceof ASN1OctetString) 25 { 26 return new DEREnumerated(((ASN1OctetString)obj).getOctets()); 27 } 28 29 if (obj instanceof ASN1TaggedObject) 30 { 31 return getInstance(((ASN1TaggedObject)obj).getObject()); 32 } 33 34 throw new IllegalArgumentException("illegal object in getInstance: " + obj.getClass().getName()); 35 } 36 37 46 public static DEREnumerated getInstance( 47 ASN1TaggedObject obj, 48 boolean explicit) 49 { 50 return getInstance(obj.getObject()); 51 } 52 53 public DEREnumerated( 54 int value) 55 { 56 bytes = BigInteger.valueOf(value).toByteArray(); 57 } 58 59 public DEREnumerated( 60 BigInteger value) 61 { 62 bytes = value.toByteArray(); 63 } 64 65 public DEREnumerated( 66 byte[] bytes) 67 { 68 this.bytes = bytes; 69 } 70 71 public BigInteger getValue() 72 { 73 return new BigInteger(bytes); 74 } 75 76 void encode( 77 DEROutputStream out) 78 throws IOException 79 { 80 out.writeEncoded(ENUMERATED, bytes); 81 } 82 83 public boolean equals( 84 Object o) 85 { 86 if (o == null || !(o instanceof DEREnumerated)) 87 { 88 return false; 89 } 90 91 DEREnumerated other = (DEREnumerated)o; 92 93 if (bytes.length != other.bytes.length) 94 { 95 return false; 96 } 97 98 for (int i = 0; i != bytes.length; i++) 99 { 100 if (bytes[i] != other.bytes[i]) 101 { 102 return false; 103 } 104 } 105 106 return true; 107 } 108 } 109 | Popular Tags |