CCAFFEINE
0.8.8
|
00001 00007 #ifndef StringVector_seen 00008 #define StringVector_seen 00009 namespace jcpp { 00010 00011 00012 //#include "jc++/jc++.h" 00013 //#include "jc++/lang/Object.h" 00014 //#include "jc++/util/StringEnumeration.h" 00015 00019 class StringIterated { 00020 public: 00021 virtual ~StringIterated(){} 00022 virtual void doIt(char *) = 0; 00023 }; 00024 00026 class StringIteratedFree : public virtual StringIterated { 00027 public: 00028 StringIteratedFree() {} 00029 virtual ~StringIteratedFree() {} 00030 virtual void doIt(char *); 00031 }; 00032 00034 class StringIteratedDelete : public virtual StringIterated { 00035 public: 00036 StringIteratedDelete() {} 00037 virtual ~StringIteratedDelete() {} 00038 virtual void doIt(char *); 00039 }; 00040 00045 class StringVector : public virtual Object { 00046 00047 protected: 00048 00050 int capacityIncrement; 00052 int elementCount; 00053 00054 CFREE char **elementData; 00056 int elementData_length; 00057 00058 private: 00059 00060 static const int DEFAULTCAP; 00061 00062 void increaseCapacity(); 00063 00064 public: 00065 00066 CDELETE StringVector(); 00067 00068 CDELETE StringVector ( int initialCapacity ); 00069 00071 CDELETE StringVector(int initialCapacity, int increment); 00072 00073 ~StringVector(); 00074 00075 void add(char * str); 00076 void addElement(char * str); 00077 00078 int capacity(); 00079 00080 CDELETE Object *clone (); 00081 00082 boolean contains(char * elem); 00083 00084 char * elementAt ( int index ); 00085 00086 CDELETE StringEnumeration *elements (); 00087 00088 void ensureCapacity(int newCapacity); 00089 00090 char * firstElement (); 00091 00092 char * get(int idx); 00093 00094 int indexOf(char * elem); 00095 00098 int indexOf(char * elem, int index); 00099 00100 void insertElementAt ( char * str, int index ); 00101 00102 boolean isEmpty (); 00103 00104 char * lastElement (); 00105 00106 int lastIndexOf(char * elem); 00107 00108 int lastIndexOf(char * elem, int index); 00109 00113 CFREE char * remove(int idx) ; 00114 00117 void removeAllElements () ; 00118 00121 boolean removeElement(char * str) ; 00122 00125 void removeElementAt ( int index ) ; 00126 00129 void setElementAt(char * str, int index); 00130 00131 void setSize(int newSize) ; 00132 00133 int size() ; 00134 00135 char *toString(); 00136 00137 void trimToSize(); 00138 00142 void doAll(StringIterated &); 00143 00150 CFREE char **toArgv(int &argc); 00151 00156 void copyOut(char **array, int length); 00157 00159 void sort(); 00160 }; 00161 00162 } ENDSEMI //jcpp 00163 00164 #endif //StringVector_seen