CCAFFEINE  0.8.8
StringVector.h
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