1b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampackage org.bouncycastle.asn1; 2b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 3b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam/** 4b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * class for breaking up an OID into it's component tokens, ala 5b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * java.util.StringTokenizer. We need this class as some of the 6b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * lightweight Java environment don't support classes like 7b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam * StringTokenizer. 8b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam */ 9b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampublic class OIDTokenizer 10b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam{ 11b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam private String oid; 12b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam private int index; 13b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 14b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public OIDTokenizer( 15b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam String oid) 16b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 17b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam this.oid = oid; 18b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam this.index = 0; 19b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 20b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 21b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public boolean hasMoreTokens() 22b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 23b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam return (index != -1); 24b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 25b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 26b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam public String nextToken() 27b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 28b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam if (index == -1) 29b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 30b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam return null; 31b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 32b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 33b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam String token; 34b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam int end = oid.indexOf('.', index); 35b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 36b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam if (end == -1) 37b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam { 38b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam token = oid.substring(index); 39b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam index = -1; 40b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam return token; 41b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 42b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 43b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam token = oid.substring(index, end); 44b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam 45b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam index = end + 1; 46b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam return token; 47b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam } 48b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam} 49