1 /*
2 * Copyright 2005 The Apache Software Foundation
3 *
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
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
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.
15 *
16 */
17
18 package org.apache.asn1.der;
19
20 import java.io.UnsupportedEncodingException;
21
22 /**
23 * Interface for DER string objects.
24 */
25 public abstract class DERString extends DERObject
26 {
27 /**
28 * Basic DERObject constructor.
29 */
30 DERString( int tag, byte[] value )
31 {
32 super( tag, value );
33 }
34
35 /**
36 * Lazy accessor.
37 * @return underlying byte array converted to a String
38 */
39 public String getString()
40 {
41 return byteArrayToString( value );
42 }
43
44 /**
45 * Utility method for converting byte arrays to Strings.
46 * @param bytes
47 * @return String
48 */
49 protected static String byteArrayToString( byte[] bytes )
50 {
51 try
52 {
53 return new String( bytes, "UTF-8" );
54 }
55 catch ( UnsupportedEncodingException uee )
56 {
57 return "";
58 }
59 }
60
61 /**
62 * Utility method for converting Strings to bytes.
63 * @param string
64 * @return bytes
65 */
66 protected static byte[] stringToByteArray( String string )
67 {
68 try
69 {
70 return string.getBytes( "UTF-8" );
71 }
72 catch ( UnsupportedEncodingException uee )
73 {
74 return new byte[]{};
75 }
76 }
77 }
78