/** Return an array with table names as keys and class names as values.
	* the first table will be used to obtain the id of new objects, with polymorphic 
	* retrieval this table should be the topmost persistent superclass, so that it
	* contains a record for each logical instance in the polymorphism, making the ids
	* unique for all objects within a polymorphism
	* @return Array the map
	*/
	function initTableMap(&$anArray)
	{
		if ($this->getTableName() === null) return;

		$this->refPropertyDescriptors(); //initializes the polymorphismPropName too 
		if ($this->polymorphismPropName) { //polymorphism, include parent tablenames first
			$parentDesc = $this->getParentclassDescriptor();
			$parentDesc->initTableMap($anArray);
		}
		if ( !isSet($anArray[$this->tableName]) )
			$anArray[$this->tableName] = $this->name; //add own tablename only if it was not already added by parent
	}