use of cbit.vcell.biomodel.meta.registry.Registry.Entry in project vcell by virtualcell.
the class VCMetaDataMiriamManager method addMiriamRefGroup.
public void addMiriamRefGroup(Identifiable identifiable, MIRIAMQualifier miriamQualifier, Set<MiriamResource> miriamResources) throws URNParseFailureException {
Entry entry = vcMetaData.getRegistry().getEntry(identifiable);
Resource resource = entry.getResource();
if (resource == null) {
String newURIString = vcMetaData.getRegistry().generateFreeURI(identifiable);
resource = entry.setURI(vcMetaData.getRdfData(), newURIString);
}
MIRIAMizer miriamizer = new MIRIAMizer();
RefGroup sybilRefGroup = miriamizer.newRefGroup(vcMetaData.getRdfData(), resource, miriamQualifier);
Set<MIRIAMRef> sybilMiriamRefs = new HashSet<MIRIAMRef>();
for (MiriamResource miriamResource : miriamResources) {
sybilMiriamRefs.add(MIRIAMRef.createFromURN(miriamResource.getMiriamURN()));
}
for (MIRIAMRef sybilMiriamRef : sybilMiriamRefs) {
sybilRefGroup.add(vcMetaData.getRdfData(), sybilMiriamRef);
}
invalidateCache(identifiable);
vcMetaData.fireAnnotationEventListener(new VCMetaData.AnnotationEvent(identifiable));
}
use of cbit.vcell.biomodel.meta.registry.Registry.Entry in project vcell by virtualcell.
the class VCMetaDataMiriamManager method getDublinCoreDateMap.
// this is not yet cached.
public Map<Identifiable, Map<DateQualifier, Set<DublinCoreDate>>> getDublinCoreDateMap() {
Map<Identifiable, Map<DateQualifier, Set<DublinCoreDate>>> map = new HashMap<Identifiable, Map<DateQualifier, Set<DublinCoreDate>>>();
Set<Entry> allEntries = vcMetaData.getRegistry().getAllEntries();
Graph rdfData = vcMetaData.getRdfData();
for (Entry entry : allEntries) {
Resource resource = entry.getResource();
if (resource != null) {
Identifiable identifiable = entry.getIdentifiable();
Map<DateQualifier, Set<DublinCoreDate>> qualifierDateMap = new HashMap<DateQualifier, Set<DublinCoreDate>>();
for (DublinCoreQualifier.DateQualifier dateQualifier : AnnotationQualifiers.DC_date_all) {
Set<DublinCoreDate> dateStrings = new HashSet<DublinCoreDate>();
Iterator<Statement> stmtIter = rdfData.match(resource, dateQualifier.getProperty(), null);
while (stmtIter.hasNext()) {
Statement statement = stmtIter.next();
Value dateObject = statement.getObject();
if (dateObject instanceof Literal) {
Literal dateLiteral = (Literal) dateObject;
String dateString = dateLiteral.stringValue();
dateStrings.add(new DublinCoreDate(dateString));
}
}
if (!dateStrings.isEmpty()) {
qualifierDateMap.put(dateQualifier, dateStrings);
}
}
if (!qualifierDateMap.isEmpty()) {
map.put(identifiable, qualifierDateMap);
}
}
}
return map;
}
Aggregations