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