swoopspeciesvalidatorvisitor.java

来自「Semantic Web Ontology Editor」· Java 代码 · 共 238 行

JAVA
238
字号
package org.mindswap.swoop.renderer.ontology;/** * @author Dave * * Basically a copy of  uk.ac.man.cs.img.owl.validation.SpeciesValidatorVisitor. * This is needed because 1) uk.ac.man.cs.img.owl.validation.SpeciesValidatorVisitor is not  *    extendable outside of its package *                        2) SwoopSpeciesValidator requires a validatorVisitor * This class is fitted for SwoopSpeciesValidator. * */import org.semanticweb.owl.model.helper.OWLObjectVisitorAdapter;import org.semanticweb.owl.model.OWLDataPropertyInstance;import org.semanticweb.owl.model.OWLDataPropertyRangeAxiom;import org.semanticweb.owl.model.OWLEquivalentClassesAxiom;import org.semanticweb.owl.model.OWLDisjointClassesAxiom;import org.semanticweb.owl.model.OWLFunctionalPropertyAxiom;import org.semanticweb.owl.model.OWLIndividualTypeAssertion;import org.semanticweb.owl.model.OWLInverseFunctionalPropertyAxiom;import org.semanticweb.owl.model.OWLInversePropertyAxiom;import org.semanticweb.owl.model.OWLObjectPropertyInstance;import org.semanticweb.owl.model.OWLObjectPropertyRangeAxiom;import org.semanticweb.owl.model.OWLPropertyDomainAxiom;import org.semanticweb.owl.model.OWLSubClassAxiom;import org.semanticweb.owl.model.OWLDescription;import org.semanticweb.owl.model.OWLObject;import org.semanticweb.owl.model.OWLSymmetricPropertyAxiom;import org.semanticweb.owl.model.OWLTransitivePropertyAxiom;import java.util.Iterator;import org.semanticweb.owl.model.OWLClass;import org.apache.log4j.Logger;import org.semanticweb.owl.model.OWLException;import org.semanticweb.owl.io.abstract_syntax.ObjectRenderer;import org.semanticweb.owl.io.RendererException;import org.semanticweb.owl.validation.OWLValidationConstants;import uk.ac.man.cs.img.owl.validation.ClassOrRestrictionIdentifier;public class SwoopSpeciesValidatorVisitor extends OWLObjectVisitorAdapter implements OWLValidationConstants{    private int level;    static Logger logger = Logger.getLogger(SwoopSpeciesValidatorVisitor.class);        private SwoopSpeciesValidator parent;    private ObjectRenderer objectRenderer;    public int getLevel() {	return level;    }    public SwoopSpeciesValidatorVisitor( SwoopSpeciesValidator parent, 				    ObjectRenderer renderer ) {	this.level = SwoopSpeciesValidator.LITE;	this.parent = parent;	this.objectRenderer = renderer;    }        public void visit( OWLDisjointClassesAxiom node ) {	/* If a Disjoint Classes Axiom is used, we must be in at	 * least DL. */	logger.debug("Visiting DisjointClassesAxiom");	parent.explain( SwoopSpeciesValidator.DL,			DISJOINT, 			"Disjoint Classes axiom found: " + renderNode( node ) );	level = level | SwoopSpeciesValidator.DL;    }        public void visit( OWLEquivalentClassesAxiom node ) {	/* Depends on the format of the expressions. */	logger.debug("Visiting EquivalentClassesAxiom");	try {	    for ( Iterator it = node.getEquivalentClasses().iterator();		  it.hasNext(); ) {		OWLObject oo = (OWLObject) it.next();		logger.debug( "Object is: " + oo );		if ( !isClassOrSimpleRestriction( oo ) ) {		    parent.explain( SwoopSpeciesValidator.DL,				    EXPRESSIONINAXIOM,				    "Equivalent Classes axiom using expressions found: " + renderNode( node ));		    		    level = level | SwoopSpeciesValidator.DL;		}	    }	} catch ( OWLException ex ) {	    level = level | SwoopSpeciesValidator.OTHER;	}    }        public void visit( OWLSubClassAxiom node ) {	/* Depends on the format of the expressions. */	try {	    OWLDescription subClass = node.getSubClass();	    	    if ( !isClass( subClass ) ) {		parent.explain( SwoopSpeciesValidator.DL,				EXPRESSIONINAXIOM,				"SubClass axiom using expressions found: " + renderNode( node ));				level = level | SwoopSpeciesValidator.DL;	    }	    OWLDescription superClass = node.getSuperClass();	    if ( !isClassOrSimpleRestriction( superClass ) ) {		parent.explain( SwoopSpeciesValidator.DL,				EXPRESSIONINAXIOM,				"SubClass axiom using expressions found: " + renderNode( node ));				level = level | SwoopSpeciesValidator.DL;	    }	} catch ( OWLException ex ) {	    level = level | SwoopSpeciesValidator.OTHER;	}    }        public void visit( OWLClass node ) {	/* Checks all the various things that have been said about the	 * class. */	    }        /* Check if the description is a Class */    private boolean isClass( OWLObject oo ) throws OWLException {	ClassOrRestrictionIdentifier civ = 	    new ClassOrRestrictionIdentifier();	oo.accept( civ );	return civ.isClass();    }    private boolean isClassOrSimpleRestriction( OWLObject oo ) throws OWLException {	ClassOrRestrictionIdentifier civ = 	    new ClassOrRestrictionIdentifier();	oo.accept( civ );	return civ.isClassOrSimpleRestriction();    }    private String renderNode( OWLObject node ) {	try {	    return objectRenderer.renderObject( node );	} catch (RendererException ex) {	    return node.toString();	}    }	/* (non-Javadoc)	 * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLFunctionalPropertyAxiom)	 */	public void visit(OWLFunctionalPropertyAxiom node) throws OWLException {		// TODO Auto-generated method stub			}	/* (non-Javadoc)	 * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLInverseFunctionalPropertyAxiom)	 */	public void visit(OWLInverseFunctionalPropertyAxiom node) throws OWLException {		// TODO Auto-generated method stub			}	/* (non-Javadoc)	 * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLTransitivePropertyAxiom)	 */	public void visit(OWLTransitivePropertyAxiom node) throws OWLException {		// TODO Auto-generated method stub			}	/* (non-Javadoc)	 * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLSymmetricPropertyAxiom)	 */	public void visit(OWLSymmetricPropertyAxiom node) throws OWLException {		// TODO Auto-generated method stub			}	/* (non-Javadoc)	 * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLInversePropertyAxiom)	 */	public void visit(OWLInversePropertyAxiom node) throws OWLException {		// TODO Auto-generated method stub			}	/* (non-Javadoc)	 * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLPropertyDomainAxiom)	 */	public void visit(OWLPropertyDomainAxiom node) throws OWLException {		// TODO Auto-generated method stub			}	/* (non-Javadoc)	 * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLObjectPropertyRangeAxiom)	 */	public void visit(OWLObjectPropertyRangeAxiom node) throws OWLException {		// TODO Auto-generated method stub			}	/* (non-Javadoc)	 * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLDataPropertyRangeAxiom)	 */	public void visit(OWLDataPropertyRangeAxiom node) throws OWLException {		// TODO Auto-generated method stub			}	/* (non-Javadoc)	 * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLObjectPropertyInstance)	 */	public void visit(OWLObjectPropertyInstance node) throws OWLException {		// TODO Auto-generated method stub			}	/* (non-Javadoc)	 * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLDataPropertyInstance)	 */	public void visit(OWLDataPropertyInstance node) throws OWLException {		// TODO Auto-generated method stub			}	/* (non-Javadoc)	 * @see org.semanticweb.owl.model.OWLObjectVisitor#visit(org.semanticweb.owl.model.OWLIndividualTypeAssertion)	 */	public void visit(OWLIndividualTypeAssertion node) throws OWLException {		// TODO Auto-generated method stub			}    } // SpeciesValidatorVisitor

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?