public function updateColumn(DataControllerCallContext $callcontext, DatasetMetaData $dataset, $columnName) { parent::updateColumn($callcontext, $dataset, $columnName); $newLogicalColumn = $this->newLogicalDataset->getColumn($columnName); $newColumn = $dataset->getColumn($columnName); $node = node_load($this->getColumn_NID($dataset, $columnName)); $node->title = $newColumn->publicName; $node->field_column_desc[$node->language][0]['value'] = $newColumn->description; // Note: storing logical data type for the column $node->field_column_datatype[$node->language][0]['value'] = $newLogicalColumn->type->applicationType; $node->field_column_format[$node->language][0]['value'] = gd_column_prepare_column_format($newLogicalColumn->type); $node->field_column_persistence[$node->language][0]['value'] = $newColumn->persistence; $node->field_column_key[$node->language][0]['value'] = $newColumn->isKey() ? 1 : 0; $node->field_column_source[$node->language][0]['value'] = $newColumn->source; $node->status = $newColumn->isUsed() ? NODE_PUBLISHED : NODE_NOT_PUBLISHED; node_save($node); }
public function createColumnStorage(DataControllerCallContext $callcontext, DataSourceStructureHandler $datasourceStructureHandler, DatasetMetaData $dataset, $columnName, $stage) { parent::createColumnStorage($callcontext, $datasourceStructureHandler, $dataset, $columnName, $stage); $newLogicalColumn = $this->newLogicalDataset->getColumn($columnName); $node = node_load($this->getColumn_NID($dataset, $columnName)); switch ($stage) { case DatasetStorageObserver::STAGE__BEFORE: // Note: storing logical data type for the column $node->field_column_datatype[$node->language][0]['value'] = $newLogicalColumn->type->applicationType; $node->field_column_format[$node->language][0]['value'] = gd_column_prepare_column_format($newLogicalColumn->type); break; case DatasetStorageObserver::STAGE__AFTER: $newColumn = $dataset->getColumn($columnName); $node->field_column_persistence[$node->language][0]['value'] = $newColumn->persistence; $node->status = $newColumn->isUsed() ? NODE_PUBLISHED : NODE_NOT_PUBLISHED; break; } node_save($node); }