#include <RexxCollection.hpp>
Public Attributes | |
RexxHashTable * | contents |
Public Attributes inherited from RexxInternalObject | |
ObjectHeader | header |
RexxBehaviour * | behaviour |
Additional Inherited Members | |
Static Public Member Functions inherited from RexxObject | |
static void | decodeMessageName (RexxObject *target, RexxObject *message, RexxString *&messageName, RexxObject *&startScope) |
static void | createInstance () |
Static Public Member Functions inherited from RexxInternalObject | |
static size_t | getObjectHeaderSize () |
Static Public Attributes inherited from RexxObject | |
static PCPPM | operatorMethods [] |
static RexxClass * | classInstance = OREF_NULL |
Protected Member Functions inherited from RexxVirtualBase | |
virtual | ~RexxVirtualBase () |
virtual void | baseVirtual () |
Definition at line 49 of file RexxCollection.hpp.
|
virtual |
Reimplemented in RexxIdentityTable.
Definition at line 305 of file RexxCollection.cpp.
References RexxHashTable::add(), contents, OREF_NULL, and OrefSet.
Referenced by addRexx().
RexxObject * RexxHashTableCollection::addRexx | ( | RexxObject * | _value, |
RexxObject * | _index | ||
) |
Definition at line 291 of file RexxCollection.cpp.
References add(), ARG_ONE, ARG_TWO, and requiredArgument().
RexxObject * RexxHashTableCollection::allAt | ( | RexxObject * | _index | ) |
Definition at line 196 of file RexxCollection.cpp.
References ARG_ONE, contents, RexxHashTable::getAll(), and requiredArgument().
Referenced by RexxMemory::createImage().
RexxArray * RexxHashTableCollection::allIndexes | ( | void | ) |
Definition at line 493 of file RexxCollection.cpp.
References RexxHashTable::allIndexes(), and contents.
Referenced by RexxMemory::createImage(), and RexxHashTable::uniqueIndexes().
RexxArray * RexxHashTableCollection::allItems | ( | ) |
Definition at line 485 of file RexxCollection.cpp.
References RexxHashTable::allItems(), and contents.
Referenced by RexxMemory::createImage().
|
inline |
Definition at line 91 of file RexxCollection.hpp.
References RexxHashTable::available(), and contents.
Referenced by RexxDirectory::allIndexes(), RexxDirectory::allIndexesItems(), RexxDirectory::allItems(), RexxDirectory::appendAllIndexesItemsTo(), RexxObject::defMethods(), RexxClass::defmeths(), RexxDirectory::indexRexx(), RexxSource::mergeRequired(), RexxClass::methodDictionaryMerge(), RexxDirectory::pushAllIndexesItemsTo(), PackageManager::restore(), RexxDirectory::supplier(), and PackageManager::unload().
|
virtual |
Reimplemented from RexxObject.
Reimplemented in RexxDirectory.
Definition at line 119 of file RexxCollection.cpp.
References contents, RexxInternalObject::copy(), RexxObject::copy(), and OrefSet.
Referenced by RexxBehaviour::copy(), RexxDirectory::copy(), RexxBehaviour::copyBehaviour(), RexxClass::getBehaviourDictionary(), RexxClass::getInstanceBehaviourDictionary(), RexxBehaviour::merge(), RexxBehaviour::methodDictionaryMerge(), and RexxClass::newRexx().
RexxObject * RexxHashTableCollection::copyValues | ( | int | depth | ) |
Definition at line 334 of file RexxCollection.cpp.
References contents, RexxObject::copy(), RexxHashTable::first(), RexxHashTable::next(), OREF_NULL, RexxHashTable::replace(), and RexxHashTable::value().
RexxObject * RexxHashTableCollection::empty | ( | ) |
Empty a hash table collection.
Definition at line 517 of file RexxCollection.cpp.
References contents, RexxHashTable::empty(), and OREF_NULL.
Referenced by RexxMemory::createImage(), RexxMemory::lastChanceUninit(), RexxDirectory::reset(), and InterpreterInstance::terminate().
|
inline |
Definition at line 87 of file RexxCollection.hpp.
References contents, and RexxHashTable::first().
Referenced by RexxDirectory::allIndexes(), RexxDirectory::allIndexesItems(), RexxDirectory::allItems(), RexxDirectory::appendAllIndexesItemsTo(), RexxMemory::checkUninit(), RexxActivation::closeStreams(), RexxClass::defineMethods(), RexxObject::defMethods(), RexxClass::defmeths(), RexxBehaviour::getMethods(), RexxMemory::gutCheck(), RexxDirectory::indexRexx(), ExtensionDirective::install(), RexxSource::mergeRequired(), RexxClass::methodDictionaryMerge(), RexxVariable::notify(), RexxDirectory::pushAllIndexesItemsTo(), RexxEnvelope::rehash(), PackageManager::restore(), RexxMemory::runUninits(), RexxBehaviour::setMethodDictionaryScope(), RexxDirectory::supplier(), and PackageManager::unload().
|
virtual |
Reimplemented from RexxObject.
Reimplemented in RexxDirectory.
Definition at line 70 of file RexxCollection.cpp.
References cleanUpFlatten, flatten_reference, and setUpFlatten.
|
virtual |
Retrieve an item from a hash collection using a key. This is the base virtual implementation, which uses equality semantics for the retrieveal. Other implementations may override this.
key | The target key. |
Reimplemented in RexxIdentityTable.
Definition at line 242 of file RexxCollection.cpp.
References contents, and RexxHashTable::get().
Referenced by ClassDirective::checkDuplicateMethod(), ExtensionDirective::checkDuplicateMethod(), PackageManager::checkRequiresCache(), InterpreterInstance::getRequiresFile(), getRexx(), and hasIndexRexx().
|
virtual |
Retrieve an index for a given item. Which index is returned is indeterminate.
target | The target object. |
Reimplemented in RexxIdentityTable.
Definition at line 412 of file RexxCollection.cpp.
References contents, and RexxHashTable::getIndex().
Referenced by indexRexx().
RexxObject * RexxHashTableCollection::getRexx | ( | RexxObject * | _index | ) |
Exported get() accessor for a hash table collection. This delegates to a virtual method defined by the target collection.
_index | The target index. |
Definition at line 219 of file RexxCollection.cpp.
References ARG_ONE, get(), OREF_NULL, requiredArgument(), and TheNilObject.
Referenced by RexxMemory::createImage().
RexxObject * RexxHashTableCollection::hasIndexRexx | ( | RexxObject * | _index | ) |
Test for the existence of an index in the collection. This uses the get() virtual function to determine if the item exists.
_index | The target index. |
Definition at line 369 of file RexxCollection.cpp.
References ARG_ONE, get(), OREF_NULL, requiredArgument(), TheFalseObject, and TheTrueObject.
Referenced by RexxMemory::createImage().
|
virtual |
Test if a given item exists in the collection.
target | The target object. |
Reimplemented in RexxDirectory, and RexxIdentityTable.
Definition at line 470 of file RexxCollection.cpp.
References contents, and RexxHashTable::hasItem().
Referenced by hasItemRexx().
RexxObject * RexxHashTableCollection::hasItemRexx | ( | RexxObject * | target | ) |
Test if a given item exists in the collection.
target | The target object. |
Definition at line 456 of file RexxCollection.cpp.
References ARG_ONE, hasItem(), and requiredArgument().
Referenced by RexxMemory::createImage().
|
inline |
Definition at line 90 of file RexxCollection.hpp.
References contents, and RexxHashTable::index().
Referenced by RexxDirectory::allIndexes(), RexxDirectory::allIndexesItems(), RexxDirectory::allItems(), RexxDirectory::appendAllIndexesItemsTo(), RexxMemory::checkUninit(), RexxActivation::closeStreams(), RexxClass::defineMethods(), RexxObject::defMethods(), RexxClass::defmeths(), RexxDirectory::fromIndexItemArray(), RexxBehaviour::getMethods(), RexxMemory::gutCheck(), RexxDirectory::indexRexx(), ExtensionDirective::install(), RexxSource::mergeRequired(), RexxClass::methodDictionaryMerge(), RexxVariable::notify(), RexxDirectory::pushAllIndexesItemsTo(), RexxEnvelope::rehash(), RexxMemory::runUninits(), and RexxDirectory::supplier().
RexxObject * RexxHashTableCollection::indexRexx | ( | RexxObject * | target | ) |
Retrieve an index for a given item. Which index is returned is indeterminate.
target | The target object. |
Definition at line 388 of file RexxCollection.cpp.
References ARG_ONE, getIndex(), OREF_NULL, requiredArgument(), and TheNilObject.
Referenced by RexxMemory::createImage().
RexxObject * RexxHashTableCollection::isEmpty | ( | ) |
Test if a HashTableCollection is empty.
Definition at line 529 of file RexxCollection.cpp.
References contents, RexxHashTable::isEmpty(), TheFalseObject, and TheTrueObject.
Referenced by RexxMemory::createImage().
|
inline |
Definition at line 86 of file RexxCollection.hpp.
References contents, and RexxHashTable::totalEntries().
Referenced by RexxMemory::collect(), RexxDirectory::items(), and RexxVariable::uninform().
|
virtual |
Reimplemented from RexxObject.
Reimplemented in RexxDirectory.
Definition at line 52 of file RexxCollection.cpp.
References contents, and memory_mark.
Referenced by RexxDirectory::live().
|
virtual |
Reimplemented from RexxObject.
Reimplemented in RexxDirectory.
Definition at line 61 of file RexxCollection.cpp.
References contents, and memory_mark_general.
Referenced by RexxDirectory::liveGeneral().
|
virtual |
Reimplemented from RexxObject.
Reimplemented in RexxDirectory.
Definition at line 132 of file RexxCollection.cpp.
References contents, and RexxHashTable::makeArray().
Referenced by RexxSource::getGuard(), and RexxTable::requestArray().
|
virtual |
Reimplemented from RexxInternalObject.
Definition at line 92 of file RexxCollection.cpp.
References Interpreter::logicError(), new_proxy(), OREF_NULL, TheEnvironment, TheKernel, and TheSystem.
RexxObject * RexxHashTableCollection::merge | ( | RexxHashTableCollection * | target | ) |
Definition at line 324 of file RexxCollection.cpp.
References contents, and RexxHashTable::merge().
Referenced by RexxBehaviour::merge(), and RexxBehaviour::methodDictionaryMerge().
|
virtual |
Reimplemented in RexxDirectory.
Definition at line 140 of file RexxCollection.cpp.
References contents, OREF_NULL, OrefSet, and RexxHashTable::putNodupe().
Referenced by RexxHashTable::merge().
Definition at line 88 of file RexxCollection.hpp.
References contents, and RexxHashTable::next().
Referenced by RexxDirectory::allIndexes(), RexxDirectory::allIndexesItems(), RexxDirectory::allItems(), RexxDirectory::appendAllIndexesItemsTo(), RexxMemory::checkUninit(), RexxActivation::closeStreams(), RexxClass::defineMethods(), RexxObject::defMethods(), RexxClass::defmeths(), RexxMemory::gutCheck(), RexxDirectory::indexRexx(), ExtensionDirective::install(), RexxSource::mergeRequired(), RexxClass::methodDictionaryMerge(), RexxDirectory::pushAllIndexesItemsTo(), PackageManager::restore(), RexxMemory::runUninits(), RexxDirectory::supplier(), and PackageManager::unload().
|
virtual |
Place an item into a hash collection using a key. This is the base virtual implementation, which uses equality semantics for the retrieveal. Other implementations may override this.
_value | The inserted value. |
_index | The insertion key. |
Reimplemented in RexxIdentityTable, and RexxRelation.
Definition at line 279 of file RexxCollection.cpp.
References contents, OREF_NULL, OrefSet, and RexxHashTable::put().
Referenced by ClassDirective::addMethod(), ExtensionDirective::addMethod(), putRexx(), RexxDirectory::supplier(), and RexxHashTable::uniqueIndexes().
RexxObject * RexxHashTableCollection::putRexx | ( | RexxObject * | _value, |
RexxObject * | _index | ||
) |
Exported Rexx method for adding an item to a collection. The put operation is delegated to the implementing class virtual function.
_value | The value to add. |
_index | The index for the added item. |
Definition at line 258 of file RexxCollection.cpp.
References ARG_ONE, ARG_TWO, put(), and requiredArgument().
Referenced by RexxMemory::createImage().
|
virtual |
Base virtual function for a table remove operation. This applies object equality semantics to the operation.
_index | The object index. |
Reimplemented in RexxIdentityTable.
Definition at line 190 of file RexxCollection.cpp.
References contents, and RexxHashTable::remove().
Referenced by RexxBehaviour::addMethod(), RexxBehaviour::deleteMethod(), RexxClass::deleteMethod(), RexxDirectory::put(), RexxDirectory::remove(), RexxBehaviour::removeMethod(), removeRexx(), RexxActivity::removeRunningRequires(), RexxDirectory::setEntry(), and RexxDirectory::setMethod().
|
virtual |
Remove an item specified by value.
target | The target object. |
Reimplemented in RexxDirectory, and RexxIdentityTable.
Definition at line 442 of file RexxCollection.cpp.
References contents, and RexxHashTable::removeItem().
Referenced by removeItemRexx().
RexxObject * RexxHashTableCollection::removeItemRexx | ( | RexxObject * | target | ) |
Exported method to remove an item specified by value.
target | The target object. |
Definition at line 426 of file RexxCollection.cpp.
References ARG_ONE, removeItem(), and requiredArgument().
Referenced by RexxMemory::createImage().
RexxObject * RexxHashTableCollection::removeRexx | ( | RexxObject * | _index | ) |
The exported remove() method for hash collection classes. This is the Rexx stub method. The removal operation is delegated to the virtual method defined by the implementing class.
_index | The target removal index. |
Definition at line 168 of file RexxCollection.cpp.
References ARG_ONE, OREF_NULL, remove(), requiredArgument(), and TheNilObject.
Referenced by RexxMemory::createImage().
RexxSupplier * RexxHashTableCollection::supplier | ( | void | ) |
Definition at line 476 of file RexxCollection.cpp.
References contents, and RexxHashTable::supplier().
Referenced by RexxMemory::createImage(), RexxBehaviour::getMethods(), RexxClass::methods(), and RexxDirectory::supplier().
|
virtual |
Reimplemented from RexxVirtualBase.
Reimplemented in RexxDirectory.
Definition at line 83 of file RexxCollection.cpp.
References RexxEnvelope::addTable().
RexxArray * RexxHashTableCollection::uniqueIndexes | ( | ) |
Return the unique indexes in a hash collection.
Definition at line 506 of file RexxCollection.cpp.
References contents, and RexxHashTable::uniqueIndexes().
Referenced by RexxMemory::createImage().
|
inline |
Definition at line 89 of file RexxCollection.hpp.
References contents, and RexxHashTable::value().
Referenced by RexxDirectory::allIndexesItems(), RexxDirectory::allItems(), RexxDirectory::appendAllIndexesItemsTo(), RexxClass::defineMethods(), RexxObject::defMethods(), RexxClass::defmeths(), RexxBehaviour::getMethods(), RexxDirectory::indexRexx(), ExtensionDirective::install(), RexxSource::mergeRequired(), RexxClass::methodDictionaryMerge(), RexxDirectory::pushAllIndexesItemsTo(), RexxMemory::runUninits(), RexxBehaviour::setMethodDictionaryScope(), and RexxDirectory::supplier().
RexxHashTable* RexxHashTableCollection::contents |
Definition at line 93 of file RexxCollection.hpp.
Referenced by RexxIdentityTable::add(), add(), RexxTable::addOffset(), RexxRelation::allAt(), allAt(), RexxIdentityTable::allAt(), RexxTable::allAt(), RexxRelation::allIndex(), RexxDirectory::allIndexes(), allIndexes(), RexxDirectory::allIndexesItems(), RexxDirectory::allItems(), allItems(), RexxDirectory::appendAllIndexesItemsTo(), RexxDirectory::at(), available(), copy(), copyValues(), empty(), RexxDirectory::fastAt(), RexxIdentityTable::findSuperScope(), first(), RexxIdentityTable::get(), get(), RexxIdentityTable::getIndex(), getIndex(), RexxDirectory::hasEntry(), RexxDirectory::hasIndex(), hasItem(), RexxRelation::hasItem(), RexxIdentityTable::hasItem(), index(), RexxDirectory::indexRexx(), isEmpty(), RexxDirectory::items(), items(), RexxTable::itemsRexx(), RexxRelation::itemsRexx(), live(), liveGeneral(), makeArray(), merge(), mergeItem(), RexxHashTable::newInstance(), next(), RexxEnvelope::pack(), RexxDirectory::pushAllIndexesItemsTo(), RexxIdentityTable::put(), RexxRelation::put(), put(), RexxDirectory::put(), RexxTable::putNodupe(), RexxTable::reHash(), RexxIdentityTable::remove(), remove(), RexxDirectory::remove(), RexxRelation::removeAll(), RexxRelation::removeItem(), RexxIdentityTable::removeItem(), removeItem(), RexxRelation::removeItemRexx(), RexxTable::replace(), RexxDirectory::reset(), RexxTable::reset(), RexxDirectory::setEntry(), RexxDirectory::setMethod(), RexxTable::stringAdd(), RexxTable::stringGet(), RexxTable::stringGetAll(), RexxTable::stringPut(), RexxDirectory::supplier(), supplier(), RexxRelation::supplier(), uniqueIndexes(), and value().