public Object getValue(Object parent) throws QueryException { try { if (_accessorObj instanceof Field) { return ((Field)_accessorObj).get(parent); } else { // assume method return ((Method)_accessorObj).invoke(parent); } } catch (Exception e) { throw new QueryException("Failure in retrieving value", e); } } public Type getGenericType() {
@Override public <T> Query<T> createQuery(String queryString, Class<T> type) throws QueryException { if (queryString == null || queryString.trim().length() == 0) { return null; } try { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Processing query: {}", queryString); } // FiqlParser is a parser generated by javacc Expression expression = FiqlParser.parse(queryString); if (LOGGER.isDebugEnabled()) { LOGGER.debug("Query expression: {}", expression); } // create Query and return; return new QueryImpl<T>(type, expression); } catch (Exception ex) { if (LOGGER.isDebugEnabled()) { LOGGER.error("Query processing failed = {}", queryString, ex); } throw new QueryException("Unable to parse query.", ex); } } }