package org.qi4j.api.query.grammar; import org.qi4j.api.composite.Composite; import org.qi4j.functional.Specification; /** * This should be used when doing native queries, such as SQL, SPARQL or similar. EntityFinders can choose * what type of query languages they can understand by checking the language property of a QuerySpecification */ public class QuerySpecification implements Specification<Composite> { public static boolean isQueryLanguage( String language, Specification<Composite> specification ) { if( !( specification instanceof QuerySpecification ) ) { return false; } return ( (QuerySpecification) specification ).language().equals( language ); } private String language; private String query; public QuerySpecification( String language, String query ) { this.language = language; this.query = query; } public String language() { return language; } public String query() { return query; } @Override public boolean satisfiedBy( Composite item ) { return false; } @Override public String toString() { return language + ":" + query; } }