bool Tag::hasReference(const DataArray &reference) const { if (!util::checkEntityInput(reference, false)) { return false; } DataArray da = backend()->getReference(reference.name()); return da && da.id() == reference.id(); }
void Feature::data(const DataArray &data) { util::checkEntityInput(data); if (!data.isValidEntity()) { throw UninitializedEntity(); } backend()->data(data.id()); }
void MultiTag::extents(const DataArray &extents) { if (extents == none) { backend()->extents(none); } else { backend()->extents(extents.id()); } }
void Feature::data(const DataArray &data) { if (data == none) { throw std::runtime_error("Empty data entity (DataArray) given"); } else { backend()->data(data.id()); } }
FeatureHDF5::FeatureHDF5(const shared_ptr<IFile> &file, const shared_ptr<IBlock> &block, const Group &group, const string &id, DataArray data, LinkType link_type, time_t time) : EntityHDF5(file, group, id, time), block(block) { linkType(link_type); // TODO: the line below currently throws an exception if the DataArray // is not in block - to consider if we prefer copying it to the block this->data(data.id()); }
FeatureFS::FeatureFS(const std::shared_ptr<base::IFile> &file, const std::shared_ptr<base::IBlock> &block, const std::string &loc, const std::string &id, DataArray data, LinkType link_type, time_t time) : EntityFS(file, (bfs::path(loc) / bfs::path(id)).string(), id, time), block(block) { linkType(link_type); // TODO: the line below currently throws an exception if the DataArray // is not in block - to consider if we prefer copying it to the block this->data(data.id()); }
Feature Tag::createFeature(const DataArray &data, LinkType link_type) { if (data == none) { throw std::runtime_error("Tag::createFeature: Empty DataArray entity given!"); } return backend()->createFeature(data.id(), link_type); }
bool Tag::removeReference(const DataArray &reference) { if (reference == none) { throw std::runtime_error("Tag::removeReference: Empty DataArray entity given!"); } return backend()->removeReference(reference.id()); }
void Tag::addReference(const DataArray &reference) { if (reference == none) { throw std::runtime_error("Tag::addReference: Empty DataArray entity given!"); } backend()->addReference(reference.id()); }
Feature Tag::createFeature(const DataArray &data, LinkType link_type) { if (!util::checkEntityInput(data)) { throw UninitializedEntity(); } return backend()->createFeature(data.id(), link_type); }
bool MultiTag::removeReference(const DataArray &reference) { util::checkEntityInput(reference); return backend()->removeReference(reference.id()); }
void MultiTag::addReference(const DataArray &reference) { util::checkEntityInput(reference); backend()->addReference(reference.id()); }
bool MultiTag::hasReference(const DataArray &reference) const { util::checkEntityInput(reference); return backend()->hasReference(reference.id()); }
void MultiTag::positions(const DataArray &positions) { util::checkEntityInput(positions); backend()->positions(positions.id()); }
bool Group::removeDataArray(const DataArray &data_array) { if (!util::checkEntityInput(data_array, false)) { return false; } return backend()->removeDataArray(data_array.id()); }
void Group::addDataArray(const DataArray &data_array) { if (!util::checkEntityInput(data_array)) { throw UninitializedEntity(); } backend()->addDataArray(data_array.id()); }