package uk.ac.manchester.cs.jfact.visitors;
/* This file is part of the JFact DL reasoner
Copyright 2011-2013 by Ignazio Palmisano, Dmitry Tsarkov, University of Manchester
This library 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 2.1 of the License, or (at your option) any later version.
This library 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 this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA*/
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomConceptInclusion;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomDRoleDomain;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomDRoleFunctional;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomDRoleRange;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomDRoleSubsumption;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomDeclaration;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomDifferentIndividuals;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomDisjointConcepts;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomDisjointDRoles;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomDisjointORoles;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomDisjointUnion;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomEquivalentConcepts;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomEquivalentDRoles;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomEquivalentORoles;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomFairnessConstraint;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomInstanceOf;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomORoleDomain;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomORoleFunctional;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomORoleRange;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomORoleSubsumption;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomRelatedTo;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomRelatedToNot;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomRoleAsymmetric;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomRoleInverse;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomRoleInverseFunctional;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomRoleIrreflexive;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomRoleReflexive;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomRoleSymmetric;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomRoleTransitive;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomSameIndividuals;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomValueOf;
import uk.ac.manchester.cs.jfact.kernel.dl.axioms.AxiomValueOfNot;
/**
* axiom visitor
*
* @param <O>
* return type
*/
public interface DLAxiomVisitorEx<O> {
/**
* @param axiom
* AxiomDeclaration axiom to visit
* @return visitor value
*/
O visit(AxiomDeclaration axiom);
/**
* @param axiom
* AxiomEquivalentConcepts axiom to visit
* @return visitor value
*/
O visit(AxiomEquivalentConcepts axiom);
/**
* @param axiom
* AxiomDisjointConcepts axiom to visit
* @return visitor value
*/
O visit(AxiomDisjointConcepts axiom);
/**
* @param axiom
* AxiomEquivalentORoles axiom to visit
* @return visitor value
*/
O visit(AxiomEquivalentORoles axiom);
/**
* @param axiom
* AxiomEquivalentDRoles axiom to visit
* @return visitor value
*/
O visit(AxiomEquivalentDRoles axiom);
/**
* @param axiom
* AxiomDisjointUnion axiom to visit
* @return visitor value
*/
O visit(AxiomDisjointUnion axiom);
/**
* @param axiom
* AxiomDisjointORoles axiom to visit
* @return visitor value
*/
O visit(AxiomDisjointORoles axiom);
/**
* @param axiom
* AxiomDisjointDRoles axiom to visit
* @return visitor value
*/
O visit(AxiomDisjointDRoles axiom);
/**
* @param axiom
* AxiomSameIndividuals axiom to visit
* @return visitor value
*/
O visit(AxiomSameIndividuals axiom);
/**
* @param axiom
* AxiomDifferentIndividuals axiom to visit
* @return visitor value
*/
O visit(AxiomDifferentIndividuals axiom);
/**
* @param axiom
* AxiomFairnessConstraint axiom to visit
* @return visitor value
*/
O visit(AxiomFairnessConstraint axiom);
/**
* @param axiom
* AxiomRoleInverse axiom to visit
* @return visitor value
*/
O visit(AxiomRoleInverse axiom);
/**
* @param axiom
* AxiomORoleSubsumption axiom to visit
* @return visitor value
*/
O visit(AxiomORoleSubsumption axiom);
/**
* @param axiom
* AxiomDRoleSubsumption axiom to visit
* @return visitor value
*/
O visit(AxiomDRoleSubsumption axiom);
/**
* @param axiom
* AxiomORoleDomain axiom to visit
* @return visitor value
*/
O visit(AxiomORoleDomain axiom);
/**
* @param axiom
* AxiomDRoleDomain axiom to visit
* @return visitor value
*/
O visit(AxiomDRoleDomain axiom);
/**
* @param axiom
* AxiomORoleRange axiom to visit
* @return visitor value
*/
O visit(AxiomORoleRange axiom);
/**
* @param axiom
* AxiomDRoleRange axiom to visit
* @return visitor value
*/
O visit(AxiomDRoleRange axiom);
/**
* @param axiom
* AxiomRoleTransitive axiom to visit
* @return visitor value
*/
O visit(AxiomRoleTransitive axiom);
/**
* @param axiom
* AxiomRoleReflexive axiom to visit
* @return visitor value
*/
O visit(AxiomRoleReflexive axiom);
/**
* @param axiom
* AxiomRoleIrreflexive axiom to visit
* @return visitor value
*/
O visit(AxiomRoleIrreflexive axiom);
/**
* @param axiom
* AxiomRoleSymmetric axiom to visit
* @return visitor value
*/
O visit(AxiomRoleSymmetric axiom);
/**
* @param axiom
* AxiomRoleAsymmetric axiom to visit
* @return visitor value
*/
O visit(AxiomRoleAsymmetric axiom);
/**
* @param axiom
* AxiomORoleFunctional axiom to visit
* @return visitor value
*/
O visit(AxiomORoleFunctional axiom);
/**
* @param axiom
* AxiomDRoleFunctional axiom to visit
* @return visitor value
*/
O visit(AxiomDRoleFunctional axiom);
/**
* @param axiom
* AxiomRoleInverseFunctional axiom to visit
* @return visitor value
*/
O visit(AxiomRoleInverseFunctional axiom);
/**
* @param axiom
* AxiomConceptInclusion axiom to visit
* @return visitor value
*/
O visit(AxiomConceptInclusion axiom);
/**
* @param axiom
* AxiomInstanceOf axiom to visit
* @return visitor value
*/
O visit(AxiomInstanceOf axiom);
/**
* @param axiom
* AxiomRelatedTo axiom to visit
* @return visitor value
*/
O visit(AxiomRelatedTo axiom);
/**
* @param axiom
* AxiomRelatedToNot axiom to visit
* @return visitor value
*/
O visit(AxiomRelatedToNot axiom);
/**
* @param axiom
* AxiomValueOf axiom to visit
* @return visitor value
*/
O visit(AxiomValueOf axiom);
/**
* @param axiom
* AxiomValueOfNot axiom to visit
* @return visitor value
*/
O visit(AxiomValueOfNot axiom);
}