001 /*
002 * Copyright (c) 2000 - 2006 The Legion Of The Bouncy Castle (http://www.bouncycastle.org)
003 *
004 * Permission is hereby granted, free of charge, to any person obtaining a copy of this
005 * software and associated documentation files (the "Software"), to deal in the Software
006 * without restriction, including without limitation the rights to use, copy, modify,
007 * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
008 * permit persons to whom the Software is furnished to do so, subject to the following
009 * conditions:
010 *
011 * The above copyright notice and this permission notice shall be included in all copies
012 * or substantial portions of the Software.
013 *
014 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
015 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
016 * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
017 * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
018 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
019 * DEALINGS IN THE SOFTWARE.
020 *
021 */
022
023 package org.apache.directory.shared.asn1.der;
024
025
026 /**
027 * class for breaking up an OID into it's component tokens, ala
028 * java.util.StringTokenizer. We need this class as some of the lightweight Java
029 * environment don't support classes like StringTokenizer.
030 */
031 public class OIDTokenizer
032 {
033 private String oid;
034
035 private int index;
036
037
038 public OIDTokenizer(String oid)
039 {
040 this.oid = oid;
041 this.index = 0;
042 }
043
044
045 public boolean hasMoreTokens()
046 {
047 return ( index != -1 );
048 }
049
050
051 public String nextToken()
052 {
053 if ( index == -1 )
054 {
055 return null;
056 }
057
058 String token;
059 int end = oid.indexOf( '.', index );
060
061 if ( end == -1 )
062 {
063 token = oid.substring( index );
064 index = -1;
065 return token;
066 }
067
068 token = oid.substring( index, end );
069
070 index = end + 1;
071 return token;
072 }
073 }