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*/
/* 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.datatypes.Datatype;
import uk.ac.manchester.cs.jfact.datatypes.DatatypeExpression;
import uk.ac.manchester.cs.jfact.datatypes.Literal;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptAnd;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptBottom;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptDataExactCardinality;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptDataExists;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptDataForall;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptDataMaxCardinality;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptDataMinCardinality;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptDataValue;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptName;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptNot;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptObjectExactCardinality;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptObjectExists;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptObjectForall;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptObjectMaxCardinality;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptObjectMinCardinality;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptObjectSelf;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptObjectValue;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptOneOf;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptOr;
import uk.ac.manchester.cs.jfact.kernel.dl.ConceptTop;
import uk.ac.manchester.cs.jfact.kernel.dl.DataAnd;
import uk.ac.manchester.cs.jfact.kernel.dl.DataBottom;
import uk.ac.manchester.cs.jfact.kernel.dl.DataNot;
import uk.ac.manchester.cs.jfact.kernel.dl.DataOneOf;
import uk.ac.manchester.cs.jfact.kernel.dl.DataOr;
import uk.ac.manchester.cs.jfact.kernel.dl.DataRoleBottom;
import uk.ac.manchester.cs.jfact.kernel.dl.DataRoleName;
import uk.ac.manchester.cs.jfact.kernel.dl.DataRoleTop;
import uk.ac.manchester.cs.jfact.kernel.dl.DataTop;
import uk.ac.manchester.cs.jfact.kernel.dl.IndividualName;
import uk.ac.manchester.cs.jfact.kernel.dl.ObjectRoleBottom;
import uk.ac.manchester.cs.jfact.kernel.dl.ObjectRoleChain;
import uk.ac.manchester.cs.jfact.kernel.dl.ObjectRoleInverse;
import uk.ac.manchester.cs.jfact.kernel.dl.ObjectRoleName;
import uk.ac.manchester.cs.jfact.kernel.dl.ObjectRoleProjectionFrom;
import uk.ac.manchester.cs.jfact.kernel.dl.ObjectRoleProjectionInto;
import uk.ac.manchester.cs.jfact.kernel.dl.ObjectRoleTop;
import conformance.PortedFrom;
/** expression visitor */
@PortedFrom(file = "tDLExpression.h", name = "DLExpressionVisitor")
public interface DLExpressionVisitor {
// concept expressions
/**
* @param expr
* ConceptTop to visit
*/
void visit(ConceptTop expr);
/**
* @param expr
* ConceptBottom to visit
*/
void visit(ConceptBottom expr);
/**
* @param expr
* ConceptName to visit
*/
void visit(ConceptName expr);
/**
* @param expr
* ConceptNot to visit
*/
void visit(ConceptNot expr);
/**
* @param expr
* ConceptAnd to visit
*/
void visit(ConceptAnd expr);
/**
* @param expr
* ConceptOr to visit
*/
void visit(ConceptOr expr);
/**
* @param expr
* ConceptOneOf to visit
*/
void visit(ConceptOneOf<?> expr);
/**
* @param expr
* ConceptObjectSelf to visit
*/
void visit(ConceptObjectSelf expr);
/**
* @param expr
* ConceptObjectValue to visit
*/
void visit(ConceptObjectValue expr);
/**
* @param expr
* ConceptObjectExists to visit
*/
void visit(ConceptObjectExists expr);
/**
* @param expr
* ConceptObjectForall to visit
*/
void visit(ConceptObjectForall expr);
/**
* @param expr
* ConceptObjectMinCardinality to visit
*/
void visit(ConceptObjectMinCardinality expr);
/**
* @param expr
* ConceptObjectMaxCardinality to visit
*/
void visit(ConceptObjectMaxCardinality expr);
/**
* @param expr
* ConceptObjectExactCardinality to visit
*/
void visit(ConceptObjectExactCardinality expr);
/**
* @param expr
* ConceptDataValue to visit
*/
void visit(ConceptDataValue expr);
/**
* @param expr
* ConceptDataExists to visit
*/
void visit(ConceptDataExists expr);
/**
* @param expr
* ConceptDataForall to visit
*/
void visit(ConceptDataForall expr);
/**
* @param expr
* ConceptDataMinCardinality to visit
*/
void visit(ConceptDataMinCardinality expr);
/**
* @param expr
* ConceptDataMaxCardinality to visit
*/
void visit(ConceptDataMaxCardinality expr);
/**
* @param expr
* ConceptDataExactCardinality to visit
*/
void visit(ConceptDataExactCardinality expr);
// individual expressions
/**
* @param expr
* IndividualName to visit
*/
void visit(IndividualName expr);
// object role expressions
/**
* @param expr
* ObjectRoleTop to visit
*/
void visit(ObjectRoleTop expr);
/**
* @param expr
* ObjectRoleBottom to visit
*/
void visit(ObjectRoleBottom expr);
/**
* @param expr
* ObjectRoleName to visit
*/
void visit(ObjectRoleName expr);
/**
* @param expr
* ObjectRoleInverse to visit
*/
void visit(ObjectRoleInverse expr);
/**
* @param expr
* ObjectRoleChain to visit
*/
void visit(ObjectRoleChain expr);
/**
* @param expr
* ObjectRoleProjectionFrom to visit
*/
void visit(ObjectRoleProjectionFrom expr);
/**
* @param expr
* ObjectRoleProjectionInto to visit
*/
void visit(ObjectRoleProjectionInto expr);
// data role expressions
/**
* @param expr
* DataRoleTop to visit
*/
void visit(DataRoleTop expr);
/**
* @param expr
* DataRoleBottom to visit
*/
void visit(DataRoleBottom expr);
/**
* @param expr
* DataRoleName to visit
*/
void visit(DataRoleName expr);
// data expressions
/**
* @param expr
* DataTop to visit
*/
void visit(DataTop expr);
/**
* @param expr
* DataBottom to visit
*/
void visit(DataBottom expr);
/**
* @param expr
* Literal to visit
*/
void visit(Literal<?> expr);
/**
* @param expr
* Datatype to visit
*/
void visit(Datatype<?> expr);
/**
* @param expr
* DatatypeExpression to visit
*/
void visit(DatatypeExpression<?> expr);
/**
* @param expr
* DataNot to visit
*/
void visit(DataNot expr);
/**
* @param expr
* DataAnd to visit
*/
void visit(DataAnd expr);
/**
* @param expr
* DataOr to visit
*/
void visit(DataOr expr);
/**
* @param expr
* DataOneOf to visit
*/
void visit(DataOneOf expr);
}