public function registerDataset(DataControllerCallContext $callcontext, DatasetMetaData $dataset, $stage) {
        parent::registerDataset($callcontext, $dataset, $stage);

        if ($stage == DatasetStorageObserver::STAGE__AFTER) {
            $this->newCube->loaderName = $dataset->loaderName;
        }
    }
    public function registerDataset(DataControllerCallContext $callcontext, DatasetMetaData $dataset, $stage) {
        parent::registerDataset($callcontext, $dataset, $stage);

        if ($stage == DatasetStorageObserver::STAGE__BEFORE) {
            // 'fixing' logical dataset
            if (!isset($this->newLogicalDataset->uuid)) {
                $this->newLogicalDataset->uuid = \GD\Utility\Uuid::generate();
            }

            // 'fixing' physical dataset
            $dataset->loaderName = 'GD_DatasetMetaModelLoader';

            global $user;

            $environment_metamodel = data_controller_get_environment_metamodel();
            $datasource = $environment_metamodel->getDataSource($dataset->datasourceName);

            $node = new stdClass();
            $node->type = NODE_TYPE_DATASET;
            $node->language = LANGUAGE_NONE;
            $node->uid = $user->uid;
            node_object_prepare($node);

            $node->title = $dataset->publicName;
            $node->field_dataset_uuid[$node->language][0]['value'] = $this->newLogicalDataset->uuid;
            $node->field_dataset_sysname[$node->language][0]['value'] = $this->newLogicalDataset->name;
            $node->field_dataset_datasource[$node->language][0]['value'] = $datasource->name;
            $node->field_dataset_desc[$node->language][0]['value'] = $dataset->description;
            $node->field_dataset_source_type[$node->language][0]['value'] = $this->newLogicalDataset->sourceType;
            $node->field_dataset_source[$node->language][0]['value'] = $this->newLogicalDataset->source;
            $node->field_dataset_records[$node->language][0]['value'] = 0;
            // updating aliases
            if (isset($this->newLogicalDataset->aliases)) {
                foreach ($this->newLogicalDataset->aliases as $index => $alias) {
                    $node->field_dataset_alias[$node->language][$index]['value'] = $alias;
                }
            }

            $node->status = $dataset->isUsed() ? NODE_PUBLISHED : NODE_NOT_PUBLISHED;

            node_save($node);

            $this->newLogicalDataset->nid = $node->nid;
            $this->newLogicalDataset->loaderName = $dataset->loaderName;
        }
    }
    public function registerDataset(DataControllerCallContext $callcontext, DatasetMetaData $dataset, $stage) {
        parent::registerDataset($callcontext, $dataset, $stage);

        $this->datasetStructureModified = TRUE;
    }