test_class.file: step-core/src/test/java/step/core/ql/OQLFilterBuilderTest.java
test_class.identifier: OQLFilterBuilderTest
test_case.body: @Test
  	public void test9() {
  		Filter<Object> filter = OQLFilterBuilder.getFilter("not(property1=prop1) or bean1.property1=prop1");
  		boolean test = filter.test(new Bean());
  		Assert.assertTrue(test);
  	}
test_case.class_method_signature: OQLFilterBuilderTest.test9()
test_case.full_signature: @Test public void test9()
test_case.identifier: test9
test_case.invocations: getFilter test assertTrue
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void test9()
focal_class.file: step-core/src/main/java/step/core/ql/OQLFilterBuilder.java
focal_class.identifier: OQLFilterBuilder
focal_class.class_method_signature: OQLFilterBuilder.getFilter(String expression)
focal_class.full_signature: public static Filter<Object> getFilter(String expression)
focal_class.identifier: getFilter
focal_class.modifiers: public static
focal_class.parameters: (String expression)
focal_class.return: Filter<Object>
focal_class.signature: Filter<Object> getFilter(String expression)
focal_class.class_method_signature: OQLFilterBuilder.getFilter(String expression, FilterFactory<T> factory)
focal_class.full_signature: public static Filter<T> getFilter(String expression, FilterFactory<T> factory)
focal_class.identifier: getFilter
focal_class.modifiers: public static
focal_class.parameters: (String expression, FilterFactory<T> factory)
focal_class.return: Filter<T>
focal_class.signature: Filter<T> getFilter(String expression, FilterFactory<T> factory)
focal_class.class_method_signature: OQLFilterBuilder.parse(String expression)
focal_class.full_signature: private static ParseContext parse(String expression)
focal_class.identifier: parse
focal_class.modifiers: private static
focal_class.parameters: (String expression)
focal_class.return: ParseContext
focal_class.signature: ParseContext parse(String expression)
focal_method.body: public static Filter<Object> getFilter(String expression) {
  		return getFilter(expression, new FilterFactory<Object>() {
  			@Override
  			public Filter<Object> createFullTextFilter(String expression) {
  				throw new RuntimeException("Full text search not implemented");
  			}
  
  			@Override
  			public Filter<Object> createAttributeFilter(String operator, String attribute, String value) {
  				return new Filter<Object>() {
  					@Override
  					public boolean test(Object input) {
  						try {
  							return value.equals(PropertyUtils.getProperty(input, attribute));
  						} catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException | NestedNullException e) {
  							return false;
  						}
  					}
  				};
  			}
  		});
  	}
focal_method.class_method_signature: OQLFilterBuilder.getFilter(String expression)
focal_method.full_signature: public static Filter<Object> getFilter(String expression)
focal_method.identifier: getFilter
focal_method.invocations: getFilter equals getProperty
focal_method.modifiers: public static
focal_method.parameters: (String expression)
focal_method.return: Filter<Object>
focal_method.signature: Filter<Object> getFilter(String expression)