initial checkin
[org.ibex.nanogoat.git] / src / org / bouncycastle / asn1 / DERT61String.java
1 package org.bouncycastle.asn1;
2
3 import java.io.*;
4
5 /**
6  * DER T61String (also the teletex string)
7  */
8 public class DERT61String
9     extends DERObject
10     implements DERString
11 {
12     String  string;
13
14     /**
15      * return a T61 string from the passed in object.
16      *
17      * @exception IllegalArgumentException if the object cannot be converted.
18      */
19     public static DERT61String getInstance(
20         Object  obj)
21     {
22         if (obj == null || obj instanceof DERT61String)
23         {
24             return (DERT61String)obj;
25         }
26
27         if (obj instanceof ASN1OctetString)
28         {
29             return new DERT61String(((ASN1OctetString)obj).getOctets());
30         }
31
32         if (obj instanceof ASN1TaggedObject)
33         {
34             return getInstance(((ASN1TaggedObject)obj).getObject());
35         }
36
37         throw new IllegalArgumentException("illegal object in getInstance: " + obj.getClass().getName());
38     }
39
40     /**
41      * return an T61 String from a tagged object.
42      *
43      * @param obj the tagged object holding the object we want
44      * @param explicit true if the object is meant to be explicitly
45      *              tagged false otherwise.
46      * @exception IllegalArgumentException if the tagged object cannot
47      *               be converted.
48      */
49     public static DERT61String getInstance(
50         ASN1TaggedObject obj,
51         boolean          explicit)
52     {
53         return getInstance(obj.getObject());
54     }
55
56     /**
57      * basic constructor - with bytes.
58      */
59     public DERT61String(
60         byte[]   string)
61     {
62         this.string = new String(string);
63     }
64
65     /**
66      * basic constructor - with string.
67      */
68     public DERT61String(
69         String   string)
70     {
71         this.string = string;
72     }
73
74     public String getString()
75     {
76         return string;
77     }
78
79     void encode(
80         DEROutputStream  out)
81         throws IOException
82     {
83         out.writeEncoded(T61_STRING, string.getBytes());
84     }
85
86     public boolean equals(
87         Object  o)
88     {
89         if ((o == null) || !(o instanceof DERT61String))
90         {
91             return false;
92         }
93
94         return this.getString().equals(((DERT61String)o).getString());
95     }
96 }