Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright: (c) 2004-2012 Mayo Foundation for Medical Education and 
   * Research (MFMER). All rights reserved. MAYO, MAYO CLINIC, and the
   * triple-shield Mayo logo are trademarks and service marks of MFMER.
   *
   * Except as contained in the copyright notice above, or as used to identify 
   * MFMER as the author of this software, the trade names, trademarks, service
   * marks, or product names of the copyright holder shall not be used in
   * advertising, promotion or otherwise in connection with this software without
  * prior written authorization of the copyright holder.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *      http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.twinkql.result;
 
 
 import  org.springframework.stereotype.Component;
 import  org.springframework.util.ReflectionUtils;
 
The Class DefaultMatchExpressionParser.

Author(s):
Kevin Peterson
 
 @Component
 public class DefaultMatchExpressionParser implements MatchExpressionParser {
 	
 	
 	private static final String DOT = ".";
 	private static final String METHOD = "()";
 	private static final String EQUALS = "=";
 	
 	private Pattern methodPattern = Pattern.compile("^.*\\..*\\(\\)$");
 	private Pattern equalsPattern = Pattern.compile("^.*=.*$");
 
 	/* (non-Javadoc)
 	 * @see edu.mayo.twinkql.result.MatchExpressionParser#parseMatchExpression(java.lang.String)
 	 */
 		if(this..matcher(query).matches()){
 			return this.parseRdfNodeMethod(query);
 		}
 		if(this..matcher(query).matches()){
 			return this.parseEquals(query);
 		}
 		
 		throw new MatchConditionParseException(query);
 	}

Parses the rdf node method.

Parameters:
query the query
Returns:
the match expression
 
 		String[] queryParts = StringUtils.split(query);
 		
 		if(queryParts == null || queryParts.length != 2){
 			throw new MatchConditionParseException(query);
 		}
 
 			StringUtils.remove(queryParts[0], '?').trim(), 
 			StringUtils.removeEnd(queryParts[1].trim(), ));
 	}


Parses the equals.

Parameters:
query the query
Returns:
the match expression
 
 	private MatchExpression parseEquals(String query){
 		String[] queryParts = StringUtils.split(query);
 		
 		if(queryParts == null || queryParts.length != 2){
 			throw new MatchConditionParseException(query);
 		}
 
 		return new EqualsMatchExpression(
 			StringUtils.remove(queryParts[0], '?').trim(), 
			queryParts[1].trim());
	}

The Class JenaRdfNodeMatchExpression.

Author(s):
Kevin Peterson
	public class JenaRdfNodeMatchExpression implements MatchExpression {
		private String var;
		private String method;

Instantiates a new jena rdf node match expression.

Parameters:
var the var
method the method
		private JenaRdfNodeMatchExpression(String varString method){
			super();
			this. = var;
			this. = method;
		}
		/* (non-Javadoc)
		 * @see edu.mayo.twinkql.result.MatchExpression#isMatch(com.hp.hpl.jena.query.QuerySolution)
		 */
		public boolean isMatch(QuerySolution querySolution) {
			RDFNode rdfNode = querySolution.get(this.);
			Method method = ReflectionUtils.findMethod(RDFNode.classthis.);
			return (Boolean) ReflectionUtils.invokeMethod(methodrdfNode);
		}
	}

The Class EqualsMatchExpression.

Author(s):
Kevin Peterson
	public static class EqualsMatchExpression implements MatchExpression {
		private String var;
		private String matchValue;

Instantiates a new equals match expression.

Parameters:
var the var
matchValue the match value
		private EqualsMatchExpression(String varString matchValue){
			super();
			this. = var;
			this. = matchValue;
		}
		/* (non-Javadoc)
		 * @see edu.mayo.twinkql.result.MatchExpression#isMatch(com.hp.hpl.jena.query.QuerySolution)
		 */
		public boolean isMatch(QuerySolution querySolution) {
			RDFNode rdfNode = querySolution.get(this.);
			if(! rdfNode.isURIResource() ){
				throw new MatchConditionParseException(this. + " when applied does not result in a URI Node.");
			}
			return rdfNode.asNode().getURI().equals(this.);
		}
	}

The Class MatchConditionParseException.

Author(s):
Kevin Peterson
	public static class MatchConditionParseException extends RuntimeException {
		private static final long serialVersionUID = -4164684389047290459L;

Instantiates a new match condition parse exception.

Parameters:
query the query
			super("Query: " + query + " is not a valid match expression");
		}
	}
New to GrepCode? Check out our FAQ X