protected function joinSourceConfigurations(JoinController_SourceConfiguration $sourceConfigurationA, JoinController_SourceConfiguration $sourceConfigurationB) { // preparing data from source A $adjustedDataA = isset($sourceConfigurationA->data) ? $sourceConfigurationA->adjustDataColumnNames() : NULL; // preparing data from source B if (isset($sourceConfigurationB->data)) { $adjustedDataB = $sourceConfigurationB->adjustDataColumnNames(); if (isset($adjustedDataA)) { $result = NULL; // crossing records foreach ($adjustedDataA as $recordA) { foreach ($adjustedDataB as $recordB) { $result[] = array_merge($recordA, $recordB); } } } else { $result = $adjustedDataB; } } else { $result = $adjustedDataA; } return new JoinController_SourceConfiguration($result); }
protected function joinSourceConfigurations(JoinController_SourceConfiguration $sourceConfigurationA, JoinController_SourceConfiguration $sourceConfigurationB) { // adding data from source A $result = isset($sourceConfigurationA->data) ? $sourceConfigurationA->adjustDataColumnNames() : NULL; // adding data from source B if (isset($sourceConfigurationB->data)) { $adjustedDataB = $sourceConfigurationB->adjustDataColumnNames(); if (isset($result)) { $result = array_merge($result, $adjustedDataB); } else { $result = $adjustedDataB; } } return new JoinController_SourceConfiguration($result); }
protected function hashSource(JoinController_SourceConfiguration $sourceConfiguration) { $sourceConfiguration->checkRequiredKeyColumnNames(); $hashedSource = NULL; if (isset($sourceConfiguration->data)) { foreach ($sourceConfiguration->data as $record) { $key = ''; foreach ($sourceConfiguration->keyColumnNames as $keyColumnName) { $key .= $record[$keyColumnName] . ':'; } $hashedSource[$key][] = $sourceConfiguration->adjustRecordColumnNames($record); } } return $hashedSource; }
public static function getAdjustedSourceConfiguration(JoinController_SourceConfiguration $sourceConfiguration) { return new JoinController_SourceConfiguration($sourceConfiguration->adjustDataColumnNames(), $sourceConfiguration->keyColumnNames); }