| /* GENERATED SOURCE. DO NOT MODIFY. */ |
| package com.android.internal.org.bouncycastle.asn1.x500.style; |
| |
| /** |
| * class for breaking up an X500 Name into it's component tokens, ala |
| * java.util.StringTokenizer. We need this class as some of the |
| * lightweight Java environment don't support classes like |
| * StringTokenizer. |
| * @hide This class is not part of the Android public SDK API |
| */ |
| public class X500NameTokenizer |
| { |
| private String value; |
| private int index; |
| private char separator; |
| private StringBuffer buf = new StringBuffer(); |
| |
| public X500NameTokenizer( |
| String oid) |
| { |
| this(oid, ','); |
| } |
| |
| public X500NameTokenizer( |
| String oid, |
| char separator) |
| { |
| this.value = oid; |
| this.index = -1; |
| this.separator = separator; |
| } |
| |
| public boolean hasMoreTokens() |
| { |
| return (index != value.length()); |
| } |
| |
| public String nextToken() |
| { |
| if (index == value.length()) |
| { |
| return null; |
| } |
| |
| int end = index + 1; |
| boolean quoted = false; |
| boolean escaped = false; |
| |
| buf.setLength(0); |
| |
| while (end != value.length()) |
| { |
| char c = value.charAt(end); |
| |
| if (c == '"') |
| { |
| if (!escaped) |
| { |
| quoted = !quoted; |
| } |
| buf.append(c); |
| escaped = false; |
| } |
| else |
| { |
| if (escaped || quoted) |
| { |
| buf.append(c); |
| escaped = false; |
| } |
| else if (c == '\\') |
| { |
| buf.append(c); |
| escaped = true; |
| } |
| else if (c == separator) |
| { |
| break; |
| } |
| else |
| { |
| buf.append(c); |
| } |
| } |
| end++; |
| } |
| |
| index = end; |
| |
| return buf.toString(); |
| } |
| } |