edu.stanford.protege.webprotege.index.impl.AxiomChangeHandler Maven / Gradle / Ivy
The newest version!
package edu.stanford.protege.webprotege.index.impl;
import edu.stanford.protege.webprotege.change.*;
import javax.annotation.Nonnull;
import java.util.List;
import java.util.function.Consumer;
import static com.google.common.base.Preconditions.checkNotNull;
/**
* Matthew Horridge
* Stanford Center for Biomedical Informatics Research
* 2019-09-04
*/
public class AxiomChangeHandler {
private final OntologyChangeVisitor visitor = new OntologyChangeVisitor() {
@Override
public void visit(@Nonnull AddAxiomChange addAxiomChange) {
addAxiomChangeConsumer.accept(addAxiomChange);
axiomChangeConsumer.accept(addAxiomChange);
}
@Override
public void visit(@Nonnull RemoveAxiomChange removeAxiomChange) {
removeAxiomChangeConsumer.accept(removeAxiomChange);
axiomChangeConsumer.accept(removeAxiomChange);
}
};
@Nonnull
private Consumer addAxiomChangeConsumer = change -> {};
@Nonnull
private Consumer removeAxiomChangeConsumer = change -> {};
@Nonnull
private Consumer axiomChangeConsumer = axiomChange -> {};
public AxiomChangeHandler() {
}
public void setAddAxiomChangeConsumer(@Nonnull Consumer addAxiomChangeConsumer) {
this.addAxiomChangeConsumer = checkNotNull(addAxiomChangeConsumer);
}
public void setRemoveAxiomChangeConsumer(@Nonnull Consumer removeAxiomChangeConsumer) {
this.removeAxiomChangeConsumer = checkNotNull(removeAxiomChangeConsumer);
}
public void setAxiomChangeConsumer(@Nonnull Consumer axiomChangeConsumer) {
this.axiomChangeConsumer = checkNotNull(axiomChangeConsumer);
}
public void handleOntologyChanges(List changes) {
changes.forEach(chg -> chg.accept(visitor));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy