/* Copyright 2008, 2009, 2010 by the Oxford University Computing Laboratory
This file is part of HermiT.
HermiT is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
HermiT is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with HermiT. If not, see <http://www.gnu.org/licenses/>.
*/
package org.semanticweb.HermiT.monitor;
import java.io.Serializable;
import org.semanticweb.HermiT.model.AnnotatedEquality;
import org.semanticweb.HermiT.model.DataRange;
import org.semanticweb.HermiT.model.ExistentialConcept;
import org.semanticweb.HermiT.tableau.BranchingPoint;
import org.semanticweb.HermiT.tableau.DLClauseEvaluator;
import org.semanticweb.HermiT.tableau.DatatypeManager;
import org.semanticweb.HermiT.tableau.GroundDisjunction;
import org.semanticweb.HermiT.tableau.Node;
import org.semanticweb.HermiT.tableau.ReasoningTaskDescription;
import org.semanticweb.HermiT.tableau.Tableau;
public class TableauMonitorForwarder implements TableauMonitor,Serializable {
private static final long serialVersionUID=-371801782567741632L;
protected final TableauMonitor m_forwardingTargetMonitor;
protected boolean m_forwardingOn;
public TableauMonitorForwarder(TableauMonitor forwardingTargetMontior) {
m_forwardingTargetMonitor=forwardingTargetMontior;
}
public boolean isForwardingOn() {
return m_forwardingOn;
}
public void setForwardingOn(boolean forwardingOn) {
m_forwardingOn=forwardingOn;
}
public void setTableau(Tableau tableau) {
m_forwardingTargetMonitor.setTableau(tableau);
}
public void isSatisfiableStarted(ReasoningTaskDescription reasoningTaskDescription) {
if (m_forwardingOn)
m_forwardingTargetMonitor.isSatisfiableStarted(reasoningTaskDescription);
}
public void isSatisfiableFinished(ReasoningTaskDescription reasoningTaskDescription,boolean result) {
if (m_forwardingOn)
m_forwardingTargetMonitor.isSatisfiableFinished(reasoningTaskDescription,result);
}
public void tableauCleared() {
if (m_forwardingOn)
m_forwardingTargetMonitor.tableauCleared();
}
public void saturateStarted() {
if (m_forwardingOn)
m_forwardingTargetMonitor.saturateStarted();
}
public void saturateFinished(boolean modelFound) {
if (m_forwardingOn)
m_forwardingTargetMonitor.saturateFinished(modelFound);
}
public void iterationStarted() {
if (m_forwardingOn)
m_forwardingTargetMonitor.iterationStarted();
}
public void iterationFinished() {
if (m_forwardingOn)
m_forwardingTargetMonitor.iterationFinished();
}
public void dlClauseMatchedStarted(DLClauseEvaluator dlClauseEvaluator,int dlClauseIndex) {
if (m_forwardingOn)
m_forwardingTargetMonitor.dlClauseMatchedStarted(dlClauseEvaluator,dlClauseIndex);
}
public void dlClauseMatchedFinished(DLClauseEvaluator dlClauseEvaluator,int dlClauseIndex) {
if (m_forwardingOn)
m_forwardingTargetMonitor.dlClauseMatchedFinished(dlClauseEvaluator,dlClauseIndex);
}
public void addFactStarted(Object[] tuple,boolean isCore) {
if (m_forwardingOn)
m_forwardingTargetMonitor.addFactStarted(tuple,isCore);
}
public void addFactFinished(Object[] tuple,boolean isCore,boolean factAdded) {
if (m_forwardingOn)
m_forwardingTargetMonitor.addFactFinished(tuple,isCore,factAdded);
}
public void mergeStarted(Node mergeFrom,Node mergrInto) {
if (m_forwardingOn)
m_forwardingTargetMonitor.mergeStarted(mergeFrom,mergrInto);
}
public void nodePruned(Node node) {
if (m_forwardingOn)
m_forwardingTargetMonitor.nodePruned(node);
}
public void mergeFactStarted(Node mergeFrom,Node mergeInto,Object[] sourceTuple,Object[] targetTuple) {
if (m_forwardingOn)
m_forwardingTargetMonitor.mergeFactStarted(mergeFrom,mergeInto,sourceTuple,targetTuple);
}
public void mergeFactFinished(Node mergeFrom,Node mergeInto,Object[] sourceTuple,Object[] targetTuple) {
if (m_forwardingOn)
m_forwardingTargetMonitor.mergeFactFinished(mergeFrom,mergeInto,sourceTuple,targetTuple);
}
public void mergeFinished(Node mergeFrom,Node mergeInto) {
if (m_forwardingOn)
m_forwardingTargetMonitor.mergeFinished(mergeFrom,mergeInto);
}
public void clashDetectionStarted(Object[]... tuples) {
if (m_forwardingOn)
m_forwardingTargetMonitor.clashDetectionStarted(tuples);
}
public void clashDetectionFinished(Object[]... tuples) {
if (m_forwardingOn)
m_forwardingTargetMonitor.clashDetectionFinished(tuples);
}
public void clashDetected() {
if (m_forwardingOn)
m_forwardingTargetMonitor.clashDetected();
}
public void backtrackToStarted(BranchingPoint newCurrentBrancingPoint) {
if (m_forwardingOn)
m_forwardingTargetMonitor.backtrackToStarted(newCurrentBrancingPoint);
}
public void tupleRemoved(Object[] tuple) {
if (m_forwardingOn)
m_forwardingTargetMonitor.tupleRemoved(tuple);
}
public void backtrackToFinished(BranchingPoint newCurrentBrancingPoint) {
if (m_forwardingOn)
m_forwardingTargetMonitor.backtrackToFinished(newCurrentBrancingPoint);
}
public void groundDisjunctionDerived(GroundDisjunction groundDisjunction) {
if (m_forwardingOn)
m_forwardingTargetMonitor.groundDisjunctionDerived(groundDisjunction);
}
public void processGroundDisjunctionStarted(GroundDisjunction groundDisjunction) {
if (m_forwardingOn)
m_forwardingTargetMonitor.processGroundDisjunctionStarted(groundDisjunction);
}
public void groundDisjunctionSatisfied(GroundDisjunction groundDisjunction) {
if (m_forwardingOn)
m_forwardingTargetMonitor.groundDisjunctionSatisfied(groundDisjunction);
}
public void processGroundDisjunctionFinished(GroundDisjunction groundDisjunction) {
if (m_forwardingOn)
m_forwardingTargetMonitor.processGroundDisjunctionFinished(groundDisjunction);
}
public void disjunctProcessingStarted(GroundDisjunction groundDisjunction,int disjunct) {
if (m_forwardingOn)
m_forwardingTargetMonitor.disjunctProcessingStarted(groundDisjunction,disjunct);
}
public void disjunctProcessingFinished(GroundDisjunction groundDisjunction,int disjunct) {
if (m_forwardingOn)
m_forwardingTargetMonitor.disjunctProcessingFinished(groundDisjunction,disjunct);
}
public void pushBranchingPointStarted(BranchingPoint branchingPoint) {
if (m_forwardingOn)
m_forwardingTargetMonitor.pushBranchingPointStarted(branchingPoint);
}
public void pushBranchingPointFinished(BranchingPoint branchingPoint) {
if (m_forwardingOn)
m_forwardingTargetMonitor.pushBranchingPointFinished(branchingPoint);
}
public void startNextBranchingPointStarted(BranchingPoint branchingPoint) {
if (m_forwardingOn)
m_forwardingTargetMonitor.startNextBranchingPointStarted(branchingPoint);
}
public void startNextBranchingPointFinished(BranchingPoint branchingPoint) {
if (m_forwardingOn)
m_forwardingTargetMonitor.startNextBranchingPointFinished(branchingPoint);
}
public void existentialExpansionStarted(ExistentialConcept existentialConcept,Node forNode) {
if (m_forwardingOn)
m_forwardingTargetMonitor.existentialExpansionStarted(existentialConcept,forNode);
}
public void existentialExpansionFinished(ExistentialConcept existentialConcept,Node forNode) {
if (m_forwardingOn)
m_forwardingTargetMonitor.existentialExpansionFinished(existentialConcept,forNode);
}
public void existentialSatisfied(ExistentialConcept existentialConcept,Node forNode) {
if (m_forwardingOn)
m_forwardingTargetMonitor.existentialSatisfied(existentialConcept,forNode);
}
public void nominalIntorductionStarted(Node rootNode,Node treeNode,AnnotatedEquality annotatedEquality,Node argument1,Node argument2) {
if (m_forwardingOn)
m_forwardingTargetMonitor.nominalIntorductionStarted(rootNode,treeNode,annotatedEquality,argument1,argument2);
}
public void nominalIntorductionFinished(Node rootNode,Node treeNode,AnnotatedEquality annotatedEquality,Node argument1,Node argument2) {
if (m_forwardingOn)
m_forwardingTargetMonitor.nominalIntorductionFinished(rootNode,treeNode,annotatedEquality,argument1,argument2);
}
public void descriptionGraphCheckingStarted(int graphIndex1,int tupleIndex1,int position1,int graphIndex2,int tupleIndex2,int position2) {
if (m_forwardingOn)
m_forwardingTargetMonitor.descriptionGraphCheckingStarted(graphIndex1,tupleIndex1,position1,graphIndex2,tupleIndex2,position2);
}
public void descriptionGraphCheckingFinished(int graphIndex1,int tupleIndex1,int position1,int graphIndex2,int tupleIndex2,int position2) {
if (m_forwardingOn)
m_forwardingTargetMonitor.descriptionGraphCheckingFinished(graphIndex1,tupleIndex1,position1,graphIndex2,tupleIndex2,position2);
}
public void nodeCreated(Node node) {
if (m_forwardingOn)
m_forwardingTargetMonitor.nodeCreated(node);
}
public void nodeDestroyed(Node node) {
if (m_forwardingOn)
m_forwardingTargetMonitor.nodeDestroyed(node);
}
public void unknownDatatypeRestrictionDetectionStarted(DataRange dataRange1,Node node1,DataRange dataRange2,Node node2) {
if (m_forwardingOn)
m_forwardingTargetMonitor.unknownDatatypeRestrictionDetectionStarted(dataRange1,node1,dataRange2,node2);
}
public void unknownDatatypeRestrictionDetectionFinished(DataRange dataRange1,Node node1, DataRange dataRange2,Node node2) {
if (m_forwardingOn)
m_forwardingTargetMonitor.unknownDatatypeRestrictionDetectionFinished(dataRange1,node1,dataRange2,node2);
}
public void datatypeCheckingStarted() {
if (m_forwardingOn)
m_forwardingTargetMonitor.datatypeCheckingStarted();
}
public void datatypeCheckingFinished(boolean result) {
if (m_forwardingOn)
m_forwardingTargetMonitor.datatypeCheckingFinished(result);
}
public void datatypeConjunctionCheckingStarted(DatatypeManager.DConjunction conjunction) {
if (m_forwardingOn)
m_forwardingTargetMonitor.datatypeConjunctionCheckingStarted(conjunction);
}
public void datatypeConjunctionCheckingFinished(DatatypeManager.DConjunction conjunction,boolean result) {
if (m_forwardingOn)
m_forwardingTargetMonitor.datatypeConjunctionCheckingFinished(conjunction,result);
}
public void blockingValidationStarted() {
if (m_forwardingOn)
m_forwardingTargetMonitor.blockingValidationStarted();
}
public void blockingValidationFinished(int noInvalidlyBlocked) {
if (m_forwardingOn)
m_forwardingTargetMonitor.blockingValidationFinished(noInvalidlyBlocked);
}
public void possibleInstanceIsInstance() {
if (m_forwardingOn)
m_forwardingTargetMonitor.possibleInstanceIsInstance();
}
public void possibleInstanceIsNotInstance() {
if (m_forwardingOn)
m_forwardingTargetMonitor.possibleInstanceIsNotInstance();
}
}