protected ASTNode<T> parseComparison(String expr) throws SearchParseException { Matcher m = comparatorsPattern.matcher(expr); if (m.find()) { String propertyName = expr.substring(0, m.start(1)); String operator = m.group(1); String value = expr.substring(m.end(1)); if ("".equals(value)) { throw new SearchParseException("Not a comparison expression: " + expr); } String name = unwrapSetter(propertyName); name = getActualSetterName(name); TypeInfoObject castedValue = parseType(propertyName, name, value); if (castedValue != null) { return new Comparison(name, operator, castedValue); } return null; } throw new SearchParseException("Not a comparison expression: " + expr); }
protected ASTNode<T> parseComparison(String expr) throws SearchParseException { Matcher m = comparatorsPattern.matcher(expr); if (m.find()) { String propertyName = expr.substring(0, m.start(1)); String operator = m.group(1); String value = expr.substring(m.end(1)); if ("".equals(value)) { throw new SearchParseException("Not a comparison expression: " + expr); } String name = unwrapSetter(propertyName); name = getActualSetterName(name); TypeInfoObject castedValue = parseType(propertyName, name, value); if (castedValue != null) { return new Comparison(name, operator, castedValue); } return null; } throw new SearchParseException("Not a comparison expression: " + expr); }
@Override protected ASTNode<T> parseComparison(final String expr) throws SearchParseException { Matcher m = comparatorsPattern.matcher(expr); if (m.find()) { String propertyName = expr.substring(0, m.start(1)); String operator = m.group(1); String value = expr.substring(m.end(1)); if ("".equals(value)) { throw new SearchParseException("Not a comparison expression: " + expr); } String name = unwrapSetter(propertyName); name = getActualSetterName(name); TypeInfoObject castedValue = parseType(propertyName, name, value); if (castedValue != null) { return new SyncopeComparison(name, operator, castedValue); } else { return null; } } else { throw new SearchParseException("Not a comparison expression: " + expr); } }
@Override protected ASTNode<T> parseComparison(final String expr) throws SearchParseException { Matcher m = comparatorsPattern.matcher(expr); if (m.find()) { String propertyName = expr.substring(0, m.start(1)); String operator = m.group(1); String value = expr.substring(m.end(1)); if ("".equals(value)) { throw new SearchParseException("Not a comparison expression: " + expr); } String name = unwrapSetter(propertyName); name = getActualSetterName(name); TypeInfoObject castedValue = parseType(propertyName, name, value); if (castedValue != null) { return new SyncopeComparison(name, operator, castedValue); } else { return null; } } else { throw new SearchParseException("Not a comparison expression: " + expr); } }
private Comparison parseComparison(String expr) throws SearchParseException { Matcher m = comparatorsPattern.matcher(expr); if (m.find()) { String propertyName = expr.substring(0, m.start(1)); String operator = m.group(1); String value = expr.substring(m.end(1)); if ("".equals(value)) { throw new SearchParseException("Not a comparison expression: " + expr); } String name = unwrapSetter(propertyName); String beanPropertyName = beanPropertiesMap == null ? null : beanPropertiesMap.get(name); if (beanPropertyName != null) { name = beanPropertyName; } TypeInfoObject castedValue = parseType(propertyName, name, value); if (castedValue != null) { return new Comparison(name, operator, castedValue); } else if (MessageUtils.isTrue(contextProperties.get(SearchUtils.LAX_PROPERTY_MATCH))) { return null; } else { throw new PropertyNotFoundException(name, value); } } else { throw new SearchParseException("Not a comparison expression: " + expr); } }
@Override @SuppressWarnings("unchecked") public SearchCondition<T> parse(String searchExpression) throws SearchParseException { try { final T condition = conditionClass.newInstance(); final FilterExpression expression = parser.parseFilterString(searchExpression); final FilterExpressionVisitor visitor = new FilterExpressionVisitor(condition); return (SearchCondition< T >)expression.accept(visitor); } catch (ODataMessageException | ODataApplicationException | InstantiationException | IllegalAccessException ex) { throw new SearchParseException(ex); } } }
@Override @SuppressWarnings("unchecked") public SearchCondition<T> parse(String searchExpression) throws SearchParseException { try { final T condition = conditionClass.newInstance(); final FilterExpression expression = parser.parseFilterString(searchExpression); final FilterExpressionVisitor visitor = new FilterExpressionVisitor(condition); return (SearchCondition< T >)expression.accept(visitor); } catch (ODataMessageException | ODataApplicationException | InstantiationException | IllegalAccessException ex) { throw new SearchParseException(ex); } } }
private Object convertToDate(Class<?> valueType, String value) throws SearchParseException { Message m = JAXRSUtils.getCurrentMessage(); Object obj = InjectionUtils.createFromParameterHandler(value, valueType, valueType, new Annotation[]{}, m); if (obj != null) { return obj; } try { if (Timestamp.class.isAssignableFrom(valueType)) { return convertToTimestamp(value); } else if (Time.class.isAssignableFrom(valueType)) { return convertToTime(value); } else { return convertToDefaultDate(value); } } catch (ParseException e) { // is that duration? try { Date now = new Date(); DatatypeFactory.newInstance().newDuration(value).addTo(now); return now; } catch (DatatypeConfigurationException e1) { throw new SearchParseException(e1); } catch (IllegalArgumentException e1) { throw new SearchParseException("Can parse " + value + " neither as date nor duration", e); } } }
private Object convertToDate(Class<?> valueType, String value) throws SearchParseException { Message m = JAXRSUtils.getCurrentMessage(); Object obj = InjectionUtils.createFromParameterHandler(value, valueType, new Annotation[]{}, m); if (obj != null) { return obj; } try { if (Timestamp.class.isAssignableFrom(valueType)) { return convertToTimestamp(value); } else if (Time.class.isAssignableFrom(valueType)) { return convertToTime(value); } else { return convertToDefaultDate(value); } } catch (ParseException e) { // is that duration? try { Date now = new Date(); DatatypeFactory.newInstance().newDuration(value).addTo(now); return now; } catch (DatatypeConfigurationException e1) { throw new SearchParseException(e1); } catch (IllegalArgumentException e1) { throw new SearchParseException("Can parse " + value + " neither as date nor duration", e); } } }
private Object convertToDate(Class<?> valueType, String value) throws SearchParseException { Message m = JAXRSUtils.getCurrentMessage(); Object obj = InjectionUtils.createFromParameterHandler(value, valueType, valueType, new Annotation[]{}, m); if (obj != null) { return obj; } try { if (Timestamp.class.isAssignableFrom(valueType)) { return convertToTimestamp(value); } else if (Time.class.isAssignableFrom(valueType)) { return convertToTime(value); } else { return convertToDefaultDate(value); } } catch (ParseException e) { // is that duration? try { Date now = new Date(); DatatypeFactory.newInstance().newDuration(value).addTo(now); return now; } catch (DatatypeConfigurationException e1) { throw new SearchParseException(e1); } catch (IllegalArgumentException e1) { throw new SearchParseException("Can parse " + value + " neither as date nor duration", e); } } }
level--; if (level < 0) { throw new SearchParseException(String.format("Unexpected closing bracket at position %d", idx)); throw new SearchParseException(String .format("Unmatched opening and closing brackets in expression: %s", expr)); String op = operators.get(operators.size() - 1); String ex = subexpressions.get(subexpressions.size() - 1); throw new SearchParseException("Dangling operator at the end of expression: ..." + ex + op);
level--; if (level < 0) { throw new SearchParseException(String.format("Unexpected closing bracket at position %d", idx)); throw new SearchParseException(String .format("Unmatched opening and closing brackets in expression: %s", expr)); String op = operators.get(operators.size() - 1); String ex = subexpressions.get(subexpressions.size() - 1); throw new SearchParseException("Dangling operator at the end of expression: ..." + ex + op);
level--; if (level < 0) { throw new SearchParseException(String.format("Unexpected closing bracket at position %d", idx)); throw new SearchParseException(String .format("Unmatched opening and closing brackets in expression: %s", expr)); String op = operators.get(operators.size() - 1); String ex = subexpressions.get(subexpressions.size() - 1); throw new SearchParseException("Dangling operator at the end of expression: ..." + ex + op);
String[] properties = property.split("\\."); if (properties.length > 2) { throw new SearchParseException("SQL Visitor supports only a single JOIN"); } else if (properties.length == 2) { if (joinDone) { throw new SearchParseException("SQL Visitor has already created JOIN");
return customParser; } catch (Exception ex) { throw new SearchParseException(ex);
String[] properties = property.split("\\."); if (properties.length > 2) { throw new SearchParseException("SQL Visitor supports only a single JOIN"); } else if (properties.length == 2) { if (joinDone) { throw new SearchParseException("SQL Visitor has already created JOIN");
return customParser; } catch (Exception ex) { throw new SearchParseException(ex);
throw new SearchParseException("Cannot convert String value \"" + value + "\" to a value of class " + valueType.getName(), e); castedValue = objectValue; } catch (Throwable ex) { throw new SearchParseException("Cannot convert String value \"" + value + "\" to a value of class " + valueType.getName(), ex); throw new SearchParseException("Cannot convert String value \"" + value + "\" to a value of class " + valueType.getName(), e);
throw new SearchParseException("Cannot convert String value \"" + value + "\" to a value of class " + valueType.getName(), e); castedValue = objectValue; } catch (Throwable ex) { throw new SearchParseException("Cannot convert String value \"" + value + "\" to a value of class " + valueType.getName(), ex); throw new SearchParseException("Cannot convert String value \"" + value + "\" to a value of class " + valueType.getName(), e);
throw new SearchParseException("Cannot convert String value \"" + value + "\" to a value of class " + valueType.getName(), e); castedValue = objectValue; } catch (Throwable ex) { throw new SearchParseException("Cannot convert String value \"" + value + "\" to a value of class " + valueType.getName(), ex); throw new SearchParseException("Cannot convert String value \"" + value + "\" to a value of class " + valueType.getName(), e);