@Override public void add(CachedIndexedObject<?> input) { if (!incrementalMode) { super.add(input); return; } // else incrementalMode LOGGER_.trace("{}: to add", input); if (input instanceof IndexedEntity) ((IndexedEntity) input).accept(entityInsertionListener_); if (todoDeletions_.remove(input)) return; // else super.add(input); }
@Override public boolean removeContextInitRule(ChainableContextInitRule oldRule) { return oldRule.removeFrom(getContextInitRuleChain()); }
@Override public final boolean hasPositiveOwlNothing() { return getOwlNothing().occursPositively(); }
getOwlThing().updateOccurrenceNumbers(this, addition); getOwlNothing().updateOccurrenceNumbers(this, addition); getOwlTopObjectProperty().updateOccurrenceNumbers(this, addition); getOwlBottomObjectProperty().updateOccurrenceNumbers(this, addition); getOwlThing().addListener(new CachedIndexedOwlThing.ChangeListener() { getOwlNothing() .addListener(new CachedIndexedOwlNothing.ChangeListener() {
@Override public void remove(CachedIndexedObject<?> input) { if (!incrementalMode) { super.remove(input); return; } // else incrementalMode LOGGER_.trace("{}: to remove", input); if (input instanceof IndexedEntity) ((IndexedEntity) input).accept(entityDeletionListener_); todoDeletions_.add(input); }
@Override public final boolean hasNegativeOwlThing() { return getOwlThing().occursNegatively(); }
@Override public boolean addContextInitRule(ChainableContextInitRule newRule) { if (!incrementalMode) { return super.addContextInitRule(newRule); } // else incrementalMode if (newRule.removeFrom(getRemovedContextInitRuleChain())) { if (newRule.addTo(getContextInitRuleChain())) return true; // else revert newRule.addTo(getRemovedContextInitRuleChain()); } // if above fails return newRule.addTo(getAddedContextInitRuleChain()); }
@Override public boolean removeContextInitRule(ChainableContextInitRule oldRule) { if (!incrementalMode) { return super.removeContextInitRule(oldRule); } // else incrementalMode if (oldRule.removeFrom(getAddedContextInitRuleChain())) return true; // else if (oldRule.addTo(getRemovedContextInitRuleChain())) { if (oldRule.removeFrom(getContextInitRuleChain())) return true; // else revert oldRule.removeFrom(getRemovedContextInitRuleChain()); } return false; }
@Override public boolean tryAddDefinition(ModifiableIndexedClass target, ModifiableIndexedClassExpression definition, ElkAxiom reason) { if (!incrementalMode) return super.tryAddDefinition(target, definition, reason); // for incremental mode: IndexedClassExpression removedDefintion = removedDefinitions_ .get(target); ElkAxiom removedDefinitionReason = removedDefinitionReasons_ .get(target); if (target.getDefinition() != removedDefintion || addedDefinitions_.get(target) != null) { // the existing definition was not removed or some definition has // been added return false; } // else removing if (removedDefintion == definition && removedDefinitionReason.equals(reason)) { removedDefinitions_.remove(target); removedDefinitionReasons_.remove(target); target.setDefinition(definition, reason); } else { addedDefinitions_.put(target, definition); addedDefinitionReasons_.put(target, reason); } return true; }
getOwlThing().updateOccurrenceNumbers(this, addition); getOwlNothing().updateOccurrenceNumbers(this, addition); getOwlTopObjectProperty().updateOccurrenceNumbers(this, addition); getOwlBottomObjectProperty().updateOccurrenceNumbers(this, addition); getOwlThing().addListener(new CachedIndexedOwlThing.ChangeListener() { getOwlNothing() .addListener(new CachedIndexedOwlNothing.ChangeListener() {
@Override public void remove(CachedIndexedObject<?> input) { if (!incrementalMode) { super.remove(input); return; } // else incrementalMode LOGGER_.trace("{}: to remove", input); if (input instanceof IndexedEntity) ((IndexedEntity) input).accept(entityDeletionListener_); todoDeletions_.add(input); }
@Override public final boolean hasNegativeOwlThing() { return getOwlThing().occursNegatively(); }
@Override public boolean addContextInitRule(ChainableContextInitRule newRule) { if (!incrementalMode) { return super.addContextInitRule(newRule); } // else incrementalMode if (newRule.removeFrom(getRemovedContextInitRuleChain())) { if (newRule.addTo(getContextInitRuleChain())) return true; // else revert newRule.addTo(getRemovedContextInitRuleChain()); } // if above fails return newRule.addTo(getAddedContextInitRuleChain()); }
@Override public boolean removeContextInitRule(ChainableContextInitRule oldRule) { if (!incrementalMode) { return super.removeContextInitRule(oldRule); } // else incrementalMode if (oldRule.removeFrom(getAddedContextInitRuleChain())) return true; // else if (oldRule.addTo(getRemovedContextInitRuleChain())) { if (oldRule.removeFrom(getContextInitRuleChain())) return true; // else revert oldRule.removeFrom(getRemovedContextInitRuleChain()); } return false; }
@Override public boolean tryAddDefinition(ModifiableIndexedClass target, ModifiableIndexedClassExpression definition, ElkAxiom reason) { if (!incrementalMode) return super.tryAddDefinition(target, definition, reason); // for incremental mode: IndexedClassExpression removedDefintion = removedDefinitions_ .get(target); ElkAxiom removedDefinitionReason = removedDefinitionReasons_ .get(target); if (target.getDefinition() != removedDefintion || addedDefinitions_.get(target) != null) { // the existing definition was not removed or some definition has // been added return false; } // else removing if (removedDefintion == definition && removedDefinitionReason.equals(reason)) { removedDefinitions_.remove(target); removedDefinitionReasons_.remove(target); target.setDefinition(definition, reason); } else { addedDefinitions_.put(target, definition); addedDefinitionReasons_.put(target, reason); } return true; }
getOwlThing().updateOccurrenceNumbers(this, addition); getOwlNothing().updateOccurrenceNumbers(this, addition); getOwlTopObjectProperty().updateOccurrenceNumbers(this, addition); getOwlBottomObjectProperty().updateOccurrenceNumbers(this, addition); getOwlThing().addListener(new CachedIndexedOwlThing.ChangeListener() { getOwlNothing() .addListener(new CachedIndexedOwlNothing.ChangeListener() {
/** * Removes the deleted rules from this {@link DifferentialIndex}; these * rules should be already applied in the main index during their * registration */ public void clearDeletedRules() { for (CachedIndexedObject<?> deletion : todoDeletions_) { LOGGER_.trace("{}: comitting removal", deletion); super.remove(deletion); } initDeletions(); }
@Override public boolean addContextInitRule(ChainableContextInitRule newRule) { return newRule.addTo(getContextInitRuleChain()); }
@Override public void add(CachedIndexedObject<?> input) { if (!incrementalMode) { super.add(input); return; } // else incrementalMode LOGGER_.trace("{}: to add", input); if (input instanceof IndexedEntity) ((IndexedEntity) input).accept(entityInsertionListener_); if (todoDeletions_.remove(input)) return; // else super.add(input); }
@Override public final boolean hasNegativeOwlThing() { return getOwlThing().occursNegatively(); }