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