use of org.irods.jargon.core.pub.domain.DataObject in project metalnx-web by irods-contrib.
the class MetadataServiceImpl method addMetadataToPath.
@Override
public boolean addMetadataToPath(String path, String attribute, String value, String unit) throws DataGridConnectionRefusedException {
CollectionAndDataObjectListAndSearchAO collectionAndDataObjectListAndSearchAO = irodsServices.getCollectionAndDataObjectListAndSearchAO();
boolean isMetadataAdded = false;
logger.debug(path + ": " + attribute + " " + value + " " + unit);
try {
AvuData avuData = new AvuData(attribute, value, unit);
Object obj = collectionAndDataObjectListAndSearchAO.getFullObjectForType(path);
if (obj instanceof DataObject) {
DataObjectAO dataObjectAO = irodsServices.getDataObjectAO();
dataObjectAO.addAVUMetadata(path, avuData);
} else {
CollectionAO collectionAO = irodsServices.getCollectionAO();
collectionAO.addAVUMetadata(path, avuData);
}
isMetadataAdded = true;
} catch (JargonException e) {
logger.error("Error trying to add metadata: " + e);
}
return isMetadataAdded;
}
use of org.irods.jargon.core.pub.domain.DataObject in project metalnx-web by irods-contrib.
the class MetadataServiceImpl method modMetadataFromPath.
@Override
public boolean modMetadataFromPath(String path, String oldAttribute, String oldValue, String oldUnit, String newAttribute, String newValue, String newUnit) throws DataGridConnectionRefusedException {
CollectionAndDataObjectListAndSearchAO collectionAndDataObjectListAndSearchAO = irodsServices.getCollectionAndDataObjectListAndSearchAO();
try {
AvuData oldAVUData = new AvuData(oldAttribute, oldValue, oldUnit);
AvuData newAVUData = new AvuData(newAttribute, newValue, newUnit);
Object obj = collectionAndDataObjectListAndSearchAO.getFullObjectForType(path);
if (obj instanceof DataObject) {
DataObjectAO dataObjectAO = irodsServices.getDataObjectAO();
dataObjectAO.modifyAVUMetadata(path, oldAVUData, newAVUData);
} else {
CollectionAO collectionAO = irodsServices.getCollectionAO();
collectionAO.modifyAVUMetadata(path, oldAVUData, newAVUData);
}
} catch (JargonException e) {
logger.error("Error trying to modify metadata: " + e.toString());
return false;
}
return true;
}
use of org.irods.jargon.core.pub.domain.DataObject in project metalnx-web by irods-contrib.
the class CollectionServiceImpl method getReplicationNumber.
@Override
public int getReplicationNumber(String path) throws DataGridConnectionRefusedException {
logger.info("getReplicationNumber()");
logger.debug("Getting replication number of " + path);
DataObjectAO dataObjectAO = irodsServices.getDataObjectAO();
DataObject dataObject = null;
try {
dataObject = dataObjectAO.findByAbsolutePath(path);
} catch (JargonException e) {
logger.error("Could not find a data object matching " + path, e);
}
if (dataObject != null) {
return dataObject.getDataReplicationNumber();
}
return 0;
}
use of org.irods.jargon.core.pub.domain.DataObject in project metalnx-web by irods-contrib.
the class MetadataServiceImpl method findMetadataValuesByPath.
@Override
public List<DataGridMetadata> findMetadataValuesByPath(String path) throws DataGridConnectionRefusedException {
List<MetaDataAndDomainData> metadataList;
List<DataGridMetadata> dataGridMetadataList = new ArrayList<>();
List<MetaDataAndDomainData> resultingList;
CollectionAndDataObjectListAndSearchAO collectionAndDataObjectListAndSearchAO = irodsServices.getCollectionAndDataObjectListAndSearchAO();
try {
Object obj = collectionAndDataObjectListAndSearchAO.getFullObjectForType(path);
if (obj instanceof DataObject) {
DataObjectAO dataObjectAO = irodsServices.getDataObjectAO();
metadataList = dataObjectAO.findMetadataValuesForDataObject(path);
} else {
CollectionAO collectionAO = irodsServices.getCollectionAO();
metadataList = collectionAO.findMetadataValuesForCollection(path);
}
// TODO2: Making sure all AVUs are unique. Jargon should do that.
resultingList = new ArrayList<>();
Set<Integer> setOfAlreadyListedAVUs = new HashSet<>();
for (MetaDataAndDomainData avuForItem : metadataList) {
int avuId = avuForItem.getAvuId();
if (!setOfAlreadyListedAVUs.contains(avuId)) {
resultingList.add(avuForItem);
setOfAlreadyListedAVUs.add(avuId);
}
}
for (MetaDataAndDomainData metadata : resultingList) {
DataGridMetadata dataGridMetadata = new DataGridMetadata();
dataGridMetadata.setAttribute(metadata.getAvuAttribute());
dataGridMetadata.setValue(metadata.getAvuValue());
dataGridMetadata.setUnit(metadata.getAvuUnit());
dataGridMetadataList.add(dataGridMetadata);
}
Collections.sort(dataGridMetadataList);
} catch (JargonQueryException e) {
logger.error("Error getting metadata info from collection: " + e.toString());
} catch (JargonException e) {
logger.error("Error getting metadata info from dataobject: " + e.toString());
}
return dataGridMetadataList;
}
use of org.irods.jargon.core.pub.domain.DataObject in project metalnx-web by irods-contrib.
the class MetadataServiceImpl method delMetadataFromPath.
@Override
public boolean delMetadataFromPath(String path, String attribute, String value, String unit) throws DataGridConnectionRefusedException {
CollectionAndDataObjectListAndSearchAO collectionAndDataObjectListAndSearchAO = irodsServices.getCollectionAndDataObjectListAndSearchAO();
try {
AvuData avuData = new AvuData(attribute, value, unit);
Object obj = collectionAndDataObjectListAndSearchAO.getFullObjectForType(path);
if (obj instanceof DataObject) {
DataObjectAO dataObjectAO = irodsServices.getDataObjectAO();
dataObjectAO.deleteAVUMetadata(path, avuData);
} else {
CollectionAO collectionAO = irodsServices.getCollectionAO();
collectionAO.deleteAVUMetadata(path, avuData);
}
} catch (JargonException e) {
logger.error("Error trying to delete metadata: " + e.toString());
return false;
}
return true;
}
Aggregations