Storm\Core\Mapping\EntityRelationalMap::Initialize PHP Method

Initialize() final public method

{@inheritDoc}
final public Initialize ( DomainDatabaseMap $DomainDatabaseMap )
$DomainDatabaseMap DomainDatabaseMap
    public final function Initialize(DomainDatabaseMap $DomainDatabaseMap)
    {
        $this->OnInitialize($DomainDatabaseMap);
        $this->EntityMap = $this->EntityMap($DomainDatabaseMap->GetDomain());
        $this->EntityType = $this->EntityMap->GetEntityType();
        if (!$this->EntityMap instanceof Object\IEntityMap) {
            throw new \Storm\Core\UnexpectedValueException('Return value from %s->EntityMap() must be an instance of %s, %s given', get_class($this), Object\IEntityMap::IEntityMapType, \Storm\Core\Utilities::GetTypeOrClass($this->EntityMap));
        }
        $Database = $DomainDatabaseMap->GetDatabase();
        $Registrar = new Registrar(IPropertyMapping::IPropertyMappingType);
        $this->RegisterPropertyMappings($Registrar, $this->EntityMap, $Database);
        foreach ($Registrar->GetRegistered() as $PropertyMapping) {
            $this->AddPropertyMapping($PropertyMapping);
        }
        foreach ($this->MappedReviveColumns as $MappedReviveColumn) {
            $Table = $MappedReviveColumn->GetTable();
            $this->ReviveTables[$Table->GetName()] = $Table;
        }
        foreach ($this->MappedPersistColumns as $MappedPersistColumn) {
            $Table = $MappedPersistColumn->GetTable();
            $this->PersistTables[$Table->GetName()] = $Table;
        }
        if ($this->PrimaryKeyTable === null) {
            throw new MappingException('The property mappings of %s must contain atleast 1 identity primary key mapping', get_class($this));
        }
        $this->OnInitialized($DomainDatabaseMap);
    }