CCAFFEINE
0.8.8
|
00001 00007 #ifndef Vector_seen 00008 #define Vector_seen 00009 //#include "jc++/jc++.h" 00010 //#include "jc++/lang/Object.h" 00011 //#include "jc++/util/Enumeration.h" 00012 //#include "jc++/util/VectEnum.h" 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; // expansion size 00044 int elementCount; // number of actual entries 00045 00046 CFREE Object * *elementData; 00047 int elementData_length; // total capacity 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 //jcpp 00162 00163 #endif //Vector_seen