00001 /* Copyright (c) 2006, Gennady Bystritsky <bystr@mac.com> 00002 * 00003 * Distributed under the MIT Licence. 00004 * This is free software. See 'LICENSE' for details. 00005 * You must read and accept the license prior to use. 00006 */ 00007 00008 #ifndef _SK_UTIL_STRINGARRAY_ 00009 #define _SK_UTIL_STRINGARRAY_ 00010 00011 #include <sk/util/Object.h> 00012 #include <sk/util/String.h> 00013 #include <sk/util/Processor.h> 00014 #include <vector> 00015 00016 namespace sk { 00017 namespace util { 00018 class StringArray 00019 : public std::vector<sk::util::String>, 00020 public virtual sk::util::Object 00021 { 00022 public: 00023 StringArray(); 00024 StringArray(const sk::util::String& item); 00025 StringArray(const char* item); 00026 virtual ~StringArray(); 00027 00028 const sk::util::String& get(int index) const; 00029 int size() const; 00030 sk::util::StringArray operator + (const sk::util::String& item) const; 00031 void forEach(const sk::util::Processor<const sk::util::String>& processor) const; 00032 sk::util::StringArray& operator << (const sk::util::String& item); 00033 00034 // sk::util::Object re-implementation. 00035 const sk::util::Class getClass() const; 00036 const sk::util::String inspect() const; 00037 const sk::util::String join(const sk::util::String& separator) const; 00038 }; 00039 } 00040 } 00041 00042 #endif /* _SK_UTIL_STRINGARRAY_ */