#include <OrderedCollection.h>
Inheritance diagram for Core::OrderedCollection:
Public Member Functions | |
OrderedCollection (int size=5) | |
virtual | ~OrderedCollection (void) |
OrderedCollection (const OrderedCollection &origin) | |
virtual String * | className (void) const |
Answer receiver class name. | |
virtual Object * | at (int index) const |
virtual void | put (int index, Object *obj) |
virtual long | capacity (void) const |
Answer how many elements can be stored in the collection. | |
virtual long | size (void) const |
Answer how many elements the collection includes. | |
virtual Object * | first (void) |
virtual Object * | last (void) |
virtual void | add (Object *) |
virtual void | addFirst (Object *) |
virtual void | addLast (Object *) |
virtual void | changeSize (long newSize) |
virtual OrderedCollection * | asOrderedCollection (void) |
virtual Object * | copy (void) |
virtual Object * | copy (int from, int to) |
virtual Object * | copyEmpty (long size) |
virtual Object * | remove (Object *) |
virtual Object * | removeFirst (void) |
virtual Object * | removeLast (void) |
Static Public Member Functions | |
static OrderedCollection * | with (Object *object) |
static OrderedCollection * | with (Object *obj1, Object *obj2) |
static OrderedCollection * | with (Object *obj1, Object *obj2, Object *obj3) |
static OrderedCollection * | with (Object *obj1, Object *obj2, Object *obj3, Object *obj4) |
static OrderedCollection * | withAll (Collection *coll) |
Protected Member Functions | |
virtual Object * | privNextForIterator (CollectionIterator *iter) const |
virtual void | changeCapacity (int newCapacity) |
virtual void | grow (void) |
virtual void | increaseCapacity (void) |
virtual void | makeRoomAtFirst (void) |
virtual void | makeRoomAtLast (void) |
virtual void | removeIndex (int index) |
Protected Attributes | |
Array * | content |
int | firstIndex |
int | lastIndex |
|
Definition at line 29 of file OrderedCollection.cc. References content, firstIndex, and lastIndex. Referenced by copy(), copyEmpty(), with(), and withAll(). 00030 { 00031 content = new Array(size); 00032 firstIndex = 0; 00033 lastIndex = -1; 00034 }
|
|
Definition at line 36 of file OrderedCollection.cc. References content. 00037 { 00038 delete content; 00039 }
|
|
Definition at line 42 of file OrderedCollection.cc. References content, Core::Array::copy(), firstIndex, and lastIndex. 00043 { 00044 firstIndex = origin.firstIndex; 00045 lastIndex = origin.lastIndex; 00046 content = (Array *) origin.content->copy(); 00047 }
|
|
Reimplemented from Core::Collection. Definition at line 143 of file OrderedCollection.cc. References addLast(). Referenced by Tools::CommandLineParser::addArgument(), Core::String::asArrayOfSubstringsSeparatedBy(), Tools::Filename::components(), Tools::Filename::directoryContents(), Tools::Filename::privFilesMatchingAccessList(), with(), and withAll(). 00144 { 00145 addLast(object); 00146 }
|
|
Definition at line 148 of file OrderedCollection.cc. References content, firstIndex, makeRoomAtFirst(), and Core::Array::put(). Referenced by Tools::HierarchicalConfigurationReader::pushConfiguration(). 00149 { 00150 if (firstIndex == 0) makeRoomAtFirst(); 00151 firstIndex--; 00152 content->put(firstIndex, object); 00153 }
|
|
Definition at line 155 of file OrderedCollection.cc. References capacity(), content, lastIndex, makeRoomAtLast(), and Core::Array::put(). Referenced by add(), Core::Collection::asOrderedCollection(), and OS::SharedQueue::nextPut(). 00156 { 00157 lastIndex++; 00158 if (lastIndex == capacity()) makeRoomAtLast(); 00159 content->put(lastIndex, object); 00160 }
|
|
Reimplemented from Core::Collection. Definition at line 172 of file OrderedCollection.cc. 00173 { 00174 return this; 00175 }
|
|
Reimplemented from Core::SequenceableCollection. Definition at line 100 of file OrderedCollection.cc. References Core::Array::at(), content, firstIndex, lastIndex, and Core::GenericException::raiseFrom(). Referenced by Tools::Filename::privFilesMatchingAccessList(), and Tools::CommandLineParser::process(). 00101 { 00102 if (index < 0 || index + firstIndex > lastIndex) { 00103 SubscriptOutOfBoundsError *ex; 00104 ex = new SubscriptOutOfBoundsError(__PRETTY_FUNCTION__, index); 00105 ex->raiseFrom(this); 00106 } 00107 return content->at(index + firstIndex); 00108 }
|
|
Answer how many elements can be stored in the collection.
Reimplemented from Core::Collection. Definition at line 120 of file OrderedCollection.cc. References content, and Core::Array::size(). Referenced by addLast(), makeRoomAtFirst(), and privNextForIterator().
|
|
Definition at line 234 of file OrderedCollection.cc. References Core::Array::at(), content, firstIndex, lastIndex, and Core::Array::put(). Referenced by increaseCapacity(). 00235 { 00236 Array *oldContent; 00237 00238 oldContent = content; 00239 content = new Array(newCapacity); 00240 for (int i = firstIndex; i < lastIndex; i++) { 00241 content->put(i, oldContent->at(i)); 00242 } 00243 delete oldContent; 00244 }
|
|
Reimplemented from Core::SequenceableCollection. Definition at line 162 of file OrderedCollection.cc. References content, Core::SequenceableCollection::replace(), and size(). 00163 { 00164 Array *oldContent = content; 00165 content = new Array(newSize); 00166 long length = size(); 00167 content->replace(0, (length < newSize) ? length : newSize, oldContent); 00168 delete oldContent; 00169 }
|
|
Answer receiver class name. Because there isn't any standard way to obtain class name this method comes to place. Every class should rewrite this method but many didn't (yet). Reimplemented from Core::Collection. Definition at line 50 of file OrderedCollection.cc. 00051 { 00052 return new String("OrderedCollection"); 00053 }
|
|
Definition at line 80 of file OrderedCollection.h. References Core::SequenceableCollection::copy(). 00081 { return SequenceableCollection::copy(from, to); }
|
|
Reimplemented from Core::SequenceableCollection. Definition at line 178 of file OrderedCollection.cc. References OrderedCollection(). 00179 { 00180 return new OrderedCollection(*this); 00181 }
|
|
Reimplemented from Core::Collection. Definition at line 183 of file OrderedCollection.cc. References OrderedCollection(). 00184 { 00185 return new OrderedCollection(size); 00186 }
|
|
Reimplemented from Core::SequenceableCollection. Definition at line 130 of file OrderedCollection.cc. References Core::Array::at(), content, Core::Collection::emptyCheck(), and firstIndex. Referenced by Tools::Filename::baseDirectoryForList(), and OS::SharedQueue::peek(). 00131 { 00132 emptyCheck(); 00133 return content->at(firstIndex); 00134 }
|
|
Reimplemented from Core::SequenceableCollection. Definition at line 246 of file OrderedCollection.cc. References increaseCapacity(). 00247 { 00248 increaseCapacity(); 00249 }
|
|
Definition at line 251 of file OrderedCollection.cc. References changeCapacity(), Core::Collection::growSize(), and size(). Referenced by grow(), makeRoomAtFirst(), and makeRoomAtLast(). 00252 { 00253 changeCapacity(size() + growSize()); 00254 }
|
|
Reimplemented from Core::SequenceableCollection. Definition at line 136 of file OrderedCollection.cc. References Core::Array::at(), content, Core::Collection::emptyCheck(), and lastIndex. 00137 { 00138 emptyCheck(); 00139 return content->at(lastIndex); 00140 }
|
|
Definition at line 256 of file OrderedCollection.cc. References Core::Array::at(), capacity(), content, firstIndex, increaseCapacity(), lastIndex, nil, and Core::Array::put(). Referenced by addFirst(). 00257 { 00258 int delta; 00259 00260 delta = capacity() - lastIndex - 1; 00261 if (delta <= 0) { 00262 /* There is no room left */ 00263 increaseCapacity(); 00264 if (firstIndex == 0) makeRoomAtFirst(); 00265 return; 00266 } 00267 for (int i = lastIndex; i >= firstIndex; i--) { 00268 content->put(i + delta, content->at(i)); 00269 } 00270 for (int i = firstIndex; i < firstIndex + delta; i++) { 00271 content->put(i, nil); 00272 } 00273 firstIndex += delta; 00274 lastIndex = capacity() - 1; 00275 }
|
|
Definition at line 277 of file OrderedCollection.cc. References Core::Array::at(), content, firstIndex, increaseCapacity(), lastIndex, nil, and Core::Array::put(). Referenced by addLast(). 00278 { 00279 int delta; 00280 00281 delta = -firstIndex; 00282 if (delta == 0) { 00283 /* There is no room left */ 00284 increaseCapacity(); 00285 return; 00286 } 00287 for (int i = firstIndex; i < lastIndex; i++) { 00288 content->put(i + delta, content->at(i)); 00289 } 00290 for (int i = lastIndex + delta; i < lastIndex; i++) { 00291 content->put(i, nil); 00292 } 00293 firstIndex = 0; 00294 lastIndex += delta; 00295 }
|
|
Reimplemented from Core::SequenceableCollection. Definition at line 224 of file OrderedCollection.cc. References Core::Array::at(), capacity(), content, firstIndex, lastIndex, and nil. 00225 { 00226 if (iter->position() + firstIndex > lastIndex) { 00227 iter->position(capacity()); 00228 return nil; 00229 } 00230 return content->at(iter->position() + firstIndex); 00231 }
|
|
Reimplemented from Core::SequenceableCollection. Definition at line 110 of file OrderedCollection.cc. References content, firstIndex, lastIndex, Core::Array::put(), and Core::GenericException::raiseFrom(). 00111 { 00112 if (index < 0 || index + firstIndex > lastIndex) { 00113 SubscriptOutOfBoundsError *ex; 00114 ex = new SubscriptOutOfBoundsError(__PRETTY_FUNCTION__, index); 00115 ex->raiseFrom(this); 00116 } 00117 return content->put(index + firstIndex, obj); 00118 }
|
|
Reimplemented from Core::SequenceableCollection. Definition at line 189 of file OrderedCollection.cc. References Core::Array::at(), content, firstIndex, lastIndex, and removeIndex(). 00190 { 00191 for (int i = firstIndex; i <= lastIndex; i++) { 00192 if (content->at(i)->isEqual(object)) { 00193 removeIndex(i); 00194 return object; 00195 } 00196 } 00197 (new NotFoundError(__PRETTY_FUNCTION__, object))->raiseFrom(this); 00198 }
|
|
Definition at line 200 of file OrderedCollection.cc. References Core::Array::at(), content, Core::Collection::emptyCheck(), firstIndex, nil, and Core::Array::put(). Referenced by Tools::Filename::baseDirectoryForList(), Tools::Filename::filesMatchingAccessList(), OS::SharedQueue::next(), and Tools::HierarchicalConfigurationReader::popConfiguration(). 00201 { 00202 Object *firstObject; 00203 00204 emptyCheck(); 00205 firstObject = content->at(firstIndex); 00206 content->put(firstIndex, nil); 00207 firstIndex++; 00208 return firstObject; 00209 }
|
|
Definition at line 297 of file OrderedCollection.cc. References Core::Array::at(), content, lastIndex, nil, and Core::Array::put(). Referenced by remove(). 00298 { 00299 for (; index < lastIndex; index++) { 00300 content->put(index, content->at(index+1)); 00301 } 00302 content->put(lastIndex, nil); 00303 lastIndex--; 00304 }
|
|
Definition at line 211 of file OrderedCollection.cc. References Core::Array::at(), content, Core::Collection::emptyCheck(), lastIndex, nil, and Core::Array::put(). 00212 { 00213 Object *lastObject; 00214 00215 emptyCheck(); 00216 lastObject = content->at(lastIndex); 00217 content->put(lastIndex, nil); 00218 lastIndex--; 00219 return lastObject; 00220 }
|
|
Answer how many elements the collection includes.
Reimplemented from Core::SequenceableCollection. Definition at line 125 of file OrderedCollection.cc. References firstIndex, and lastIndex. Referenced by changeSize(), Tools::CommandLineParser::collectLongOptions(), Tools::CommandLineParser::collectShortOptions(), increaseCapacity(), Tools::Filename::privFilesMatchingAccessList(), Tools::CommandLineParser::process(), and OS::SharedQueue::size(). 00126 { 00127 return lastIndex - firstIndex + 1; 00128 }
|
|
Definition at line 80 of file OrderedCollection.cc. References add(), and OrderedCollection(). 00081 { 00082 OrderedCollection *coll = new OrderedCollection(4); 00083 coll->add(obj1); 00084 coll->add(obj2); 00085 coll->add(obj3); 00086 coll->add(obj4); 00087 return coll; 00088 }
|
|
Definition at line 71 of file OrderedCollection.cc. References add(), and OrderedCollection(). 00072 { 00073 OrderedCollection *coll = new OrderedCollection(3); 00074 coll->add(obj1); 00075 coll->add(obj2); 00076 coll->add(obj3); 00077 return coll; 00078 }
|
|
Definition at line 63 of file OrderedCollection.cc. References add(), and OrderedCollection(). 00064 { 00065 OrderedCollection *coll = new OrderedCollection(2); 00066 coll->add(obj1); 00067 coll->add(obj2); 00068 return coll; 00069 }
|
|
Definition at line 56 of file OrderedCollection.cc. References add(), and OrderedCollection(). 00057 { 00058 OrderedCollection *coll = new OrderedCollection(1); 00059 coll->add(object); 00060 return coll; 00061 }
|
|
Definition at line 90 of file OrderedCollection.cc. References add(), and OrderedCollection(). 00091 { 00092 OrderedCollection *newColl = new OrderedCollection(coll->size()); 00093 for (Iterator *i = coll->iterator(); !i->finished(); i->next()) { 00094 newColl->add(i->value()); 00095 } 00096 return newColl; 00097 }
|
|
Definition at line 40 of file OrderedCollection.h. Referenced by addFirst(), addLast(), at(), capacity(), changeCapacity(), changeSize(), first(), last(), makeRoomAtFirst(), makeRoomAtLast(), OrderedCollection(), privNextForIterator(), put(), remove(), removeFirst(), removeIndex(), removeLast(), and ~OrderedCollection(). |
|
Definition at line 41 of file OrderedCollection.h. Referenced by addFirst(), at(), changeCapacity(), first(), makeRoomAtFirst(), makeRoomAtLast(), OrderedCollection(), privNextForIterator(), put(), remove(), removeFirst(), and size(). |
|
Definition at line 41 of file OrderedCollection.h. Referenced by addLast(), at(), changeCapacity(), last(), makeRoomAtFirst(), makeRoomAtLast(), OrderedCollection(), privNextForIterator(), put(), remove(), removeIndex(), removeLast(), and size(). |