@Override public Boolean visit(RemoveImportData data) throws RuntimeException { OWLOntologyID ontologyID = object.getOntologyID(); return isSameAsSubject(ontologyID); } });
@Override public Boolean visit(AddOntologyAnnotationData data) throws RuntimeException { OWLOntologyID ontologyID = object.getOntologyID(); return isSameAsSubject(ontologyID); }
@Override public Boolean visit(RemoveOntologyAnnotationData data) throws RuntimeException { OWLOntologyID ontologyID = object.getOntologyID(); return isSameAsSubject(ontologyID); }
@Override public OWLOntologyChangeData visit(SetOntologyIDData data) throws RuntimeException { return new SetOntologyIDData(record.getOntologyID()); }
@Override public Boolean visit(SetOntologyIDData data) throws RuntimeException { OWLOntologyID ontologyID = object.getOntologyID(); return isSameAsSubject(ontologyID); }
@Override public Boolean visit(AddImportData data) throws RuntimeException { OWLOntologyID ontologyID = object.getOntologyID(); return isSameAsSubject(ontologyID); }
private OWLOntologyChangeRecord normaliseChangeRecord(OWLOntologyChangeRecord changeRecord, OWLOntologyID singletonAnonymousId) { OWLOntologyID ontologyID = changeRecord.getOntologyID(); if (ontologyID.isAnonymous()) { return new OWLOntologyChangeRecord(singletonAnonymousId, changeRecord.getData()); } else { // As is return changeRecord; } }
@Nonnull private static ImmutableList<OWLOntologyChangeRecord> internChangeRecords(OntologyChangeRecordList list, final Interner<OWLAxiom> axiomInterner) { var changeRecords = list.getChangeRecords(); var internedChangeRecordsListBuilder = ImmutableList.<OWLOntologyChangeRecord>builder(); var changeDataInterner = new ChangeDataInterner(axiomInterner); for(var chanceRecord : changeRecords) { var ontologyId = chanceRecord.getOntologyID(); var changeData = chanceRecord.getData(); var internedChangeData = changeData.accept(changeDataInterner); if(internedChangeData == changeData) { internedChangeRecordsListBuilder.add(chanceRecord); } else { OWLOntologyChangeRecord rec = new OWLOntologyChangeRecord(ontologyId, internedChangeData); internedChangeRecordsListBuilder.add(rec); } } return internedChangeRecordsListBuilder.build(); }
@Override public OntologyChangeList<Boolean> generateChanges(ChangeGenerationContext context) { Optional<Revision> revision = revisionManager.getRevision(revisionNumber); if(!revision.isPresent()) { return OntologyChangeList.<Boolean>builder().build(false); } List<OWLOntologyChange> changes = new ArrayList<>(); for(OWLOntologyChangeRecord record : revision.get()) { OWLOntologyChangeData revertingChangeData = changeDataReverter.getRevertingChange(record); OWLOntologyChangeRecord revertingRecord = new OWLOntologyChangeRecord(record.getOntologyID(), revertingChangeData); OWLOntologyManager manager = rootOntology.getOWLOntologyManager(); OWLOntologyChange change = revertingRecord.createOntologyChange(manager); changes.add(0, change); } return OntologyChangeList.<Boolean>builder().addAll(changes).build(true); }
private DiffElement<String, OWLOntologyChangeRecord> toElement(OWLOntologyChangeRecord changeRecord) { OWLOntologyID ontologyID = changeRecord.getOntologyID(); final String ontologyIRIShortForm; if(isRootOntologySingleton(ontologyID)) { ontologyIRIShortForm = ""; } else if (ontologyID.isAnonymous()) { // This used to be possible, but isn't anymore. Some projects may have anonymous ontologies, so we // still need to support this. ontologyIRIShortForm = ""; } else { Optional<IRI> ontologyIRI = ontologyID.getOntologyIRI(); if (ontologyIRI.isPresent()) { ontologyIRIShortForm = ontologyIRIShortFormProvider.getShortForm(ontologyIRI.get()); } else { ontologyIRIShortForm = "Anonymous Ontology"; } } return new DiffElement<>( getDiffOperation(changeRecord), ontologyIRIShortForm, changeRecord); }
@Nonnull @Override public OWLOntologyManager getOntologyManagerForRevision(@Nonnull RevisionNumber revision) { try { OWLOntologyManager manager = WebProtegeOWLManager.createOWLOntologyManager(); final OWLOntologyID singletonOntologyId = new OWLOntologyID(); for (Revision rev : revisionStore.getRevisions()) { if (rev.getRevisionNumber().compareTo(revision) <= 0) { for (OWLOntologyChangeRecord record : rev) { // Anonymous ontologies are not handled nicely at all. OWLOntologyChangeRecord normalisedChangeRecord = normaliseChangeRecord(record, singletonOntologyId); OWLOntologyID ontologyId = normalisedChangeRecord.getOntologyID(); if (!manager.contains(ontologyId)) { manager.createOntology(ontologyId); } OWLOntologyChange change = normalisedChangeRecord.createOntologyChange(manager); manager.applyChange(change); } } } if (manager.getOntologies().isEmpty()) { // No revisions exported. Just create an empty ontology manager.createOntology(); } return manager; } catch (OWLOntologyCreationException e) { throw new RuntimeException("Problem creating ontology: " + e); } }