// Path: core/src/com/clarkparsia/owlwg/testcase/SyntaxConstraint.java
// public enum SyntaxConstraint {
// 
// 	DL(Individual.DL), EL(Individual.EL), QL(Individual.QL), RL(Individual.RL);
// 
// 	public static SyntaxConstraint get(OWLIndividual i) {
// 		for( SyntaxConstraint c : values() ) {
// 			if( c.getOWLIndividual().equals( i ) )
// 				return c;
// 		}
// 		return null;
// 	}
// 
// 	private final TestVocabulary.Individual	i;
// 
// 	private SyntaxConstraint(TestVocabulary.Individual i) {
// 		this.i = i;
// 	}
// 
// 	public OWLIndividual getOWLIndividual() {
// 		return i.getOWLIndividual();
// 	}
// }
// 
// Path: core/src/com/clarkparsia/owlwg/testcase/TestCase.java
// public interface TestCase<O> {
// 
// 	public void accept(TestCaseVisitor<O> visitor);
// 
// 	public Set<Semantics> getApplicableSemantics();
// 
// 	public String getIdentifier();
// 
// 	public Set<URI> getImportedOntologies();
// 
// 	public String getImportedOntology(URI uri, SerializationFormat format);
// 
// 	public Set<SerializationFormat> getImportedOntologyFormats(URI uri);
// 
// 	public Set<Semantics> getNotApplicableSemantics();
// 
// 	public Set<SyntaxConstraint> getSatisfiedConstraints();
// 
// 	public Status getStatus();
// 
// 	public Set<SyntaxConstraint> getUnsatisfiedConstraints();
// 
// 	public URI getURI();
// }


import com.clarkparsia.owlwg.testcase.Semantics;
import com.clarkparsia.owlwg.testcase.SyntaxConstraint;
import com.clarkparsia.owlwg.testcase.TestCase;
package com.clarkparsia.owlwg.testcase.filter;


/**
 * <p>
 * Title: Semantics Filter Condition
 * </p>
 * <p>
 * Description: Filter condition to match tests for which a particular semantics
 * is applicable.
 * </p>
 * <p>
 * Copyright: Copyright &copy; 2009
 * </p>
 * <p>
 * Company: Clark & Parsia, LLC. <a
 * href="http://clarkparsia.com/"/>http://clarkparsia.com/</a>
 * </p>
 * 
 * @author Mike Smith &lt;msmith@clarkparsia.com&gt;
 */
public class SemanticsFilter implements FilterCondition {
	
	public static final SemanticsFilter	DIRECT, RDF;

	static {
		DIRECT = new SemanticsFilter( Semantics.DIRECT );
		RDF = new SemanticsFilter( Semantics.RDF );
	}

	final private Semantics	semantics;

	/**
	 * @throws NullPointerException
	 *             if <code>semantics == null</code>
	 */
	public SemanticsFilter(Semantics semantics) {
		if( semantics == null )
			throw new NullPointerException();

		this.semantics = semantics;
	}

// Path: core/src/com/clarkparsia/owlwg/testcase/SyntaxConstraint.java
// public enum SyntaxConstraint {
// 
// 	DL(Individual.DL), EL(Individual.EL), QL(Individual.QL), RL(Individual.RL);
// 
// 	public static SyntaxConstraint get(OWLIndividual i) {
// 		for( SyntaxConstraint c : values() ) {
// 			if( c.getOWLIndividual().equals( i ) )
// 				return c;
// 		}
// 		return null;
// 	}
// 
// 	private final TestVocabulary.Individual	i;
// 
// 	private SyntaxConstraint(TestVocabulary.Individual i) {
// 		this.i = i;
// 	}
// 
// 	public OWLIndividual getOWLIndividual() {
// 		return i.getOWLIndividual();
// 	}
// }
// 
// Path: core/src/com/clarkparsia/owlwg/testcase/TestCase.java
// public interface TestCase<O> {
// 
// 	public void accept(TestCaseVisitor<O> visitor);
// 
// 	public Set<Semantics> getApplicableSemantics();
// 
// 	public String getIdentifier();
// 
// 	public Set<URI> getImportedOntologies();
// 
// 	public String getImportedOntology(URI uri, SerializationFormat format);
// 
// 	public Set<SerializationFormat> getImportedOntologyFormats(URI uri);
// 
// 	public Set<Semantics> getNotApplicableSemantics();
// 
// 	public Set<SyntaxConstraint> getSatisfiedConstraints();
// 
// 	public Status getStatus();
// 
// 	public Set<SyntaxConstraint> getUnsatisfiedConstraints();
// 
// 	public URI getURI();
// }


// Path: core/src/com/clarkparsia/owlwg/testcase/filter/SemanticsFilter.java
import com.clarkparsia.owlwg.testcase.Semantics;
import com.clarkparsia.owlwg.testcase.SyntaxConstraint;
import com.clarkparsia.owlwg.testcase.TestCase;

package com.clarkparsia.owlwg.testcase.filter;


/**
 * <p>
 * Title: Semantics Filter Condition
 * </p>
 * <p>
 * Description: Filter condition to match tests for which a particular semantics
 * is applicable.
 * </p>
 * <p>
 * Copyright: Copyright &copy; 2009
 * </p>
 * <p>
 * Company: Clark & Parsia, LLC. <a
 * href="http://clarkparsia.com/"/>http://clarkparsia.com/</a>
 * </p>
 * 
 * @author Mike Smith &lt;msmith@clarkparsia.com&gt;
 */
public class SemanticsFilter implements FilterCondition {
	
	public static final SemanticsFilter	DIRECT, RDF;

	static {
		DIRECT = new SemanticsFilter( Semantics.DIRECT );
		RDF = new SemanticsFilter( Semantics.RDF );
	}

	final private Semantics	semantics;

	/**
	 * @throws NullPointerException
	 *             if <code>semantics == null</code>
	 */
	public SemanticsFilter(Semantics semantics) {
		if( semantics == null )
			throw new NullPointerException();

		this.semantics = semantics;
	}

	public boolean accepts(TestCase testcase) {