// // Copyright (c) 2012 Health Market Science, Inc. // package com.hmsonline.virgil; import org.apache.commons.lang.StringUtils; /** * @author <a href=irieksts@healthmarketscience.com>Isaac Rieksts</a> * */ public class QueryParser { private static final String AND = " AND "; private static final String EQ_DELIM = ":"; public static Query parse(String query){ String [] peaces; Query q = new Query(); if(StringUtils.isBlank(query)) { return q; } if(StringUtils.indexOf(query, AND) > -1) { peaces = StringUtils.split(query, AND); } else { peaces = new String [] {query}; } for(String peace : peaces) { if(peace != null && peace.indexOf(EQ_DELIM) > -1) { String [] kv = peace.split(EQ_DELIM); q.addEq(StringUtils.trim(kv[0]), StringUtils.trim(kv[1])); } } return q; } }