Search in sources :

Example 1 with Entry

use of cbit.vcell.biomodel.meta.registry.Registry.Entry in project vcell by virtualcell.

the class VCMetaData method compareEquals.

public boolean compareEquals(VCMetaData vcMetaData) {
    if (!getRdfData().equals(vcMetaData.getRdfData())) {
        return false;
    }
    if (!registry.compareEquals(vcMetaData.registry)) {
        return false;
    }
    Set<Entry> oeSet = nonRDFAnnotationMap.keySet();
    Set<VCID> vcidSet = new HashSet<VCID>();
    for (Entry oe : oeSet) {
        VCID vcid = identifiableProvider.getVCID(oe.getIdentifiable());
        vcidSet.add(vcid);
    }
    Set<Entry> otherOeSet = vcMetaData.nonRDFAnnotationMap.keySet();
    for (Entry oe : otherOeSet) {
        VCID vcid = vcMetaData.identifiableProvider.getVCID(oe.getIdentifiable());
        vcidSet.add(vcid);
    }
    NonRDFAnnotation emtpyAnnotation = new NonRDFAnnotation();
    for (VCID vcid : vcidSet) {
        Identifiable myIdentifiable = identifiableProvider.getIdentifiableObject(vcid);
        Identifiable otherIdentifiable = vcMetaData.identifiableProvider.getIdentifiableObject(vcid);
        if ((otherIdentifiable == null && myIdentifiable != null) || (myIdentifiable == null && otherIdentifiable != null)) {
            return false;
        }
        NonRDFAnnotation nonRDFAnnotation = nonRDFAnnotationMap.get(registry.getEntry(myIdentifiable));
        if (nonRDFAnnotation == null) {
            nonRDFAnnotation = emtpyAnnotation;
        }
        NonRDFAnnotation otherNonRDFAnnotation = vcMetaData.nonRDFAnnotationMap.get(vcMetaData.registry.getEntry(otherIdentifiable));
        if (otherNonRDFAnnotation == null) {
            otherNonRDFAnnotation = emtpyAnnotation;
        }
        if (!Compare.isEqual(nonRDFAnnotation, otherNonRDFAnnotation)) {
            return false;
        }
    }
    return true;
}
Also used : Entry(cbit.vcell.biomodel.meta.registry.Registry.Entry) HashSet(java.util.HashSet) Identifiable(org.vcell.util.document.Identifiable)

Example 2 with Entry

use of cbit.vcell.biomodel.meta.registry.Registry.Entry in project vcell by virtualcell.

the class VCMetaData method cleanupMetadata.

public void cleanupMetadata() {
    Set<Registry.Entry> entries = registry.getAllEntries();
    for (Registry.Entry entry : entries) {
        Identifiable entryIdentifiable = entry.getIdentifiable();
        VCID vcid = identifiableProvider.getVCID(entryIdentifiable);
        Identifiable identifiable = identifiableProvider.getIdentifiableObject(vcid);
        if (identifiable == null) {
            // use miriamManager to remove RDF statements from resource for identifiable
            try {
                Map<MiriamRefGroup, MIRIAMQualifier> miriamRefGps = getMiriamManager().getAllMiriamRefGroups(entryIdentifiable);
                if (miriamRefGps != null) {
                    for (Map.Entry<MiriamRefGroup, MIRIAMQualifier> groupEntry : miriamRefGps.entrySet()) {
                        MiriamRefGroup refGroup = groupEntry.getKey();
                        MIRIAMQualifier qualifier = groupEntry.getValue();
                        getMiriamManager().remove(entryIdentifiable, qualifier, refGroup);
                    }
                }
            } catch (URNParseFailureException e) {
                e.printStackTrace(System.out);
            }
            // set nonRDF annotations to null
            NonRDFAnnotation nonRDFAnnotation = getExistingNonRDFAnnotation(entryIdentifiable);
            if (nonRDFAnnotation != null) {
                nonRDFAnnotation.setFreeTextAnnotation(null);
                nonRDFAnnotation.setXhtmlNotes(null);
                nonRDFAnnotation.setXmlAnnotations(null);
            }
            System.err.println("Deleting resource for identifiable '" + entryIdentifiable.toString() + "' since it is not found in " + identifiableProvider.getClass().getName());
        }
    }
}
Also used : Registry(cbit.vcell.biomodel.meta.registry.Registry) Identifiable(org.vcell.util.document.Identifiable) Entry(cbit.vcell.biomodel.meta.registry.Registry.Entry) Entry(cbit.vcell.biomodel.meta.registry.Registry.Entry) MIRIAMQualifier(org.vcell.sybil.models.miriam.MIRIAMQualifier) Map(java.util.Map) IdentityHashMap(java.util.IdentityHashMap) TreeMap(java.util.TreeMap) URNParseFailureException(org.vcell.sybil.models.miriam.MIRIAMRef.URNParseFailureException) MiriamRefGroup(cbit.vcell.biomodel.meta.MiriamManager.MiriamRefGroup)

Example 3 with Entry

use of cbit.vcell.biomodel.meta.registry.Registry.Entry in project vcell by virtualcell.

the class VCMetaDataMiriamManager method remove.

public void remove(Identifiable identifiable, MIRIAMQualifier miriamQualifier, MiriamRefGroup miriamRefGroup) throws URNParseFailureException {
    Entry openEntry = vcMetaData.getRegistry().getEntry(identifiable);
    Resource resource = openEntry.getResource();
    MIRIAMizer miriamizer = new MIRIAMizer();
    RefGroup sybilRefGroup = miriamizer.newRefGroup(vcMetaData.getRdfData(), resource, miriamQualifier);
    Set<MIRIAMRef> sybilMiriamRefs = new HashSet<MIRIAMRef>();
    Set<MiriamResource> miriamResources = miriamRefGroup.getMiriamRefs();
    for (MiriamResource miriamResource : miriamResources) {
        sybilMiriamRefs.add(MIRIAMRef.createFromURN(miriamResource.getMiriamURN()));
    }
    for (MIRIAMRef sybilMiriamRef : sybilMiriamRefs) {
        sybilRefGroup.add(vcMetaData.getRdfData(), sybilMiriamRef);
    }
    miriamizer.deleteRefGroup(vcMetaData.getRdfData(), resource, sybilRefGroup);
    invalidateCache(identifiable);
    vcMetaData.fireAnnotationEventListener(new VCMetaData.AnnotationEvent(identifiable));
}
Also used : MIRIAMRef(org.vcell.sybil.models.miriam.MIRIAMRef) Entry(cbit.vcell.biomodel.meta.registry.Registry.Entry) MIRIAMizer(org.vcell.sybil.models.miriam.MIRIAMizer) Resource(org.openrdf.model.Resource) RefGroup(org.vcell.sybil.models.miriam.RefGroup) HashSet(java.util.HashSet)

Example 4 with Entry

use of cbit.vcell.biomodel.meta.registry.Registry.Entry in project vcell by virtualcell.

the class VCMetaDataMiriamManager method addDate.

public void addDate(Identifiable identifiable, DateQualifier dateQualifier, DublinCoreDate date) {
    Entry entry = vcMetaData.getRegistry().getEntry(identifiable);
    if (entry.getResource() == null) {
        String newURI = vcMetaData.getRegistry().generateFreeURI(identifiable);
        entry.setURI(vcMetaData.getRdfData(), newURI);
    }
    Graph rdfData = vcMetaData.getRdfData();
    Literal dateLiteral = rdfData.getValueFactory().createLiteral(date.getDateString());
    rdfData.add(entry.getResource(), dateQualifier.getProperty(), dateLiteral);
    vcMetaData.fireAnnotationEventListener(new VCMetaData.AnnotationEvent(identifiable));
}
Also used : Entry(cbit.vcell.biomodel.meta.registry.Registry.Entry) Graph(org.openrdf.model.Graph) Literal(org.openrdf.model.Literal)

Example 5 with Entry

use of cbit.vcell.biomodel.meta.registry.Registry.Entry in project vcell by virtualcell.

the class VCMetaDataMiriamManager method getMiriamTreeMap.

public synchronized TreeMap<Identifiable, Map<MiriamRefGroup, MIRIAMQualifier>> getMiriamTreeMap() {
    if (miriamTreeMap == null) {
        final IdentifiableProvider identifiableProvider = vcMetaData.getIdentifiableProvider();
        miriamTreeMap = new TreeMap<Identifiable, Map<MiriamRefGroup, MIRIAMQualifier>>(new IdentifiableComparator(identifiableProvider));
        Set<Entry> allEntries = vcMetaData.getRegistry().getAllEntries();
        for (Entry entry : allEntries) {
            if (entry.getResource() != null) {
                Map<MiriamRefGroup, MIRIAMQualifier> refGroupMap = queryAllMiriamRefGroups(entry.getIdentifiable());
                if (refGroupMap.size() > 0) {
                    miriamTreeMap.put(entry.getIdentifiable(), refGroupMap);
                }
            }
        }
    }
    return miriamTreeMap;
}
Also used : Entry(cbit.vcell.biomodel.meta.registry.Registry.Entry) HashMap(java.util.HashMap) Map(java.util.Map) TreeMap(java.util.TreeMap) MIRIAMQualifier(org.vcell.sybil.models.miriam.MIRIAMQualifier) Identifiable(org.vcell.util.document.Identifiable)

Aggregations

Entry (cbit.vcell.biomodel.meta.registry.Registry.Entry)12 Identifiable (org.vcell.util.document.Identifiable)6 HashSet (java.util.HashSet)4 Map (java.util.Map)4 Resource (org.openrdf.model.Resource)4 HashMap (java.util.HashMap)3 TreeMap (java.util.TreeMap)3 MIRIAMQualifier (org.vcell.sybil.models.miriam.MIRIAMQualifier)3 MIRIAMizer (org.vcell.sybil.models.miriam.MIRIAMizer)3 RefGroup (org.vcell.sybil.models.miriam.RefGroup)3 VCID (cbit.vcell.biomodel.meta.VCID)2 Registry (cbit.vcell.biomodel.meta.registry.Registry)2 Element (org.jdom.Element)2 Graph (org.openrdf.model.Graph)2 Literal (org.openrdf.model.Literal)2 MIRIAMRef (org.vcell.sybil.models.miriam.MIRIAMRef)2 MiriamRefGroup (cbit.vcell.biomodel.meta.MiriamManager.MiriamRefGroup)1 NonRDFAnnotation (cbit.vcell.biomodel.meta.NonRDFAnnotation)1 IdentityHashMap (java.util.IdentityHashMap)1 Set (java.util.Set)1