/* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __STRING_TOKENIZER_H__ #define __STRING_TOKENIZER_H__ #include namespace android { /** * This is an utility class for String manipulation. * */ class StringTokenizer { public: /** * Iterator for string tokens */ class Iterator { friend class StringTokenizer; private: Iterator(StringTokenizer* StringTokenizer) : mStringTokenizer(StringTokenizer), mIndex(0) {} public: Iterator(const Iterator& iterator); Iterator& operator=(const Iterator& iterator); virtual ~Iterator() {} public: bool hasNext(); String8& next(); private: StringTokenizer* mStringTokenizer; unsigned int mIndex; }; public: /** * Constructor for StringTokenizer * * @param[in] string Complete string data * @param[in] delimeter Delimeter used to split the string */ StringTokenizer(const String8& string, const String8& delimeter); /** * Destructor for StringTokenizer */ ~StringTokenizer() {} private: /** * Splits the string according to the delimeter */ void splitString(const String8& string, const String8& delimeter); public: /** * Returns Iterator object to walk through the split string values * * @return Iterator object */ Iterator iterator(); private: Vector mStringTokenizerVector; }; }; #endif /* __STRING_TOKENIZER_H__ */