1ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvistpackage com.android.hotspot2.asn1; 2ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist 3ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvistimport java.nio.ByteBuffer; 4ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvistimport java.nio.charset.Charset; 5ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvistimport java.nio.charset.StandardCharsets; 6ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvistimport java.util.Collection; 7ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist 8ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvistpublic class Asn1String extends Asn1Object { 9ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist private final String mString; 10ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist 11ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist public Asn1String(int tag, Asn1Class asn1Class, int length, ByteBuffer data) { 12ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist super(tag, asn1Class, false, length); 13ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist 14ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist byte[] octets = new byte[length]; 15ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist data.get(octets); 16ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist Charset charset = tag == Asn1Decoder.TAG_UTF8String 17ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist ? StandardCharsets.UTF_8 : StandardCharsets.ISO_8859_1; 18ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist mString = new String(octets, charset); 19ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist } 20ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist 21ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist public String getString() { 22ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist return mString; 23ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist } 24ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist 25ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist @Override 26ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist public Collection<Asn1Object> getChildren() { 27ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist throw new UnsupportedOperationException(); 28ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist } 29ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist 30ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist @Override 31ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist public String toString() { 32ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist return super.toString() + "='" + mString + '\''; 33ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist } 34ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist} 35