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 java.io.Serializable;
import uk.ac.manchester.cs.jfact.datatypes.Datatype;
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 uk.ac.manchester.cs.jfact.kernel.dl.interfaces.Expression;
/**
* adapter for expression visitor
*
* @param <A>
* return type
*/
public abstract class DLExpressionVisitorExAdapter<A> implements
DLExpressionVisitorEx<A>, Serializable {
private static final long serialVersionUID = 11000L;
private A defaultValue;
protected A doDefault(@SuppressWarnings("unused") Expression e) {
return defaultValue;
}
/** default constructor */
public DLExpressionVisitorExAdapter() {
this(null);
}
/**
* @param a
* return value
*/
public DLExpressionVisitorExAdapter(A a) {
defaultValue = a;
}
@Override
public A visit(ConceptTop expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptBottom expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptName expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptNot expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptAnd expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptOr expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptOneOf<?> expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptObjectSelf expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptObjectValue expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptObjectExists expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptObjectForall expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptObjectMinCardinality expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptObjectMaxCardinality expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptObjectExactCardinality expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptDataValue expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptDataExists expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptDataForall expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptDataMinCardinality expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptDataMaxCardinality expr) {
return doDefault(expr);
}
@Override
public A visit(ConceptDataExactCardinality expr) {
return doDefault(expr);
}
@Override
public A visit(IndividualName expr) {
return doDefault(expr);
}
@Override
public A visit(ObjectRoleTop expr) {
return doDefault(expr);
}
@Override
public A visit(ObjectRoleBottom expr) {
return doDefault(expr);
}
@Override
public A visit(ObjectRoleName expr) {
return doDefault(expr);
}
@Override
public A visit(ObjectRoleInverse expr) {
return doDefault(expr);
}
@Override
public A visit(ObjectRoleChain expr) {
return doDefault(expr);
}
@Override
public A visit(ObjectRoleProjectionFrom expr) {
return doDefault(expr);
}
@Override
public A visit(ObjectRoleProjectionInto expr) {
return doDefault(expr);
}
@Override
public A visit(DataRoleTop expr) {
return doDefault(expr);
}
@Override
public A visit(DataRoleBottom expr) {
return doDefault(expr);
}
@Override
public A visit(DataRoleName expr) {
return doDefault(expr);
}
@Override
public A visit(DataTop expr) {
return doDefault(expr);
}
@Override
public A visit(DataBottom expr) {
return doDefault(expr);
}
@Override
public A visit(Datatype<?> expr) {
return doDefault(expr);
}
@Override
public A visit(Literal<?> expr) {
return doDefault(expr);
}
@Override
public A visit(DataNot expr) {
return doDefault(expr);
}
@Override
public A visit(DataAnd expr) {
return doDefault(expr);
}
@Override
public A visit(DataOr expr) {
return doDefault(expr);
}
@Override
public A visit(DataOneOf expr) {
return doDefault(expr);
}
}