00001
00007 #ifndef Vector_seen
00008 #define Vector_seen
00009
00010
00011
00012
00013
00014 namespace jcpp {
00015
00016
00020 class ObjectIterated {
00021 public:
00022 virtual ~ObjectIterated(){}
00023 virtual void doIt(Object *) = 0;
00024 };
00025
00027 class ObjectIteratedDelete : public virtual ObjectIterated {
00028 public:
00029 ObjectIteratedDelete() {}
00030 virtual ~ObjectIteratedDelete() {}
00031 virtual void doIt(Object *);
00032 };
00033
00034
00039 class Vector : public virtual Object {
00040
00041 protected:
00042
00043 int capacityIncrement;
00044 int elementCount;
00045
00046 CFREE Object * *elementData;
00047 int elementData_length;
00048
00049 private:
00050
00051 static const int DEFAULTCAP;
00052
00053 void increaseCapacity();
00054
00055 public:
00056
00057 CDELETE Vector();
00058
00059 CDELETE Vector ( int initialCapacity );
00060
00062 CDELETE Vector(int initialCapacity, int increment);
00063
00064 ~Vector();
00065
00066 void add(Object *obj);
00067 void addElement(Object *obj);
00068
00069 int capacity();
00070
00071 CDELETE Object *clone ();
00072
00073 boolean contains(Object * elem);
00074
00075 Object * elementAt ( int index );
00076
00077 CDELETE Enumeration *elements ();
00078
00079 void ensureCapacity(int newCapacity);
00080
00081 Object * firstElement ();
00082
00083 Object * get(int idx);
00084
00085 int indexOf(Object * elem);
00086
00089 int indexOf(Object * elem, int index);
00090
00091 void insertElementAt ( Object * obj, int index );
00092
00093 boolean isEmpty ();
00094
00095 Object * lastElement ();
00096
00097 int lastIndexOf(Object * elem);
00098
00099 int lastIndexOf(Object * elem, int index);
00100
00104 CDELETE Object * remove(int idx) ;
00105
00108 void removeAllElements () ;
00109
00112 boolean removeElement(Object * obj) ;
00113
00116 void removeElementAt ( int index ) ;
00117
00120 void setElementAt(Object * obj, int index);
00121
00124 void setSize(int newSize) ;
00125
00127 int size() ;
00128
00129 char *toString();
00130
00132 void trimToSize();
00133
00137 void doAll(ObjectIterated &f);
00138
00142 CFREE Object * *toArgv(int &argc);
00143
00148 void copyOut(Object * *array, int length);
00149
00155 void addString(char *str);
00158 char *getString(int idx);
00159 };
00160
00161 } ENDSEMI
00162
00163 #endif //Vector_seen