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 }