/** * {@inheritDoc} */ @Override public void updateObjectInternal(final Filter object, final Filter updateObject) throws DMPPersistenceException { final String expression = object.getExpression(); updateObject.setExpression(expression); super.updateObjectInternal(object, updateObject); }
public Filter createFilter(final String name, final String expression) { // TODO: think about this? final String uuid = UUIDService.getUUID(Filter.class.getSimpleName()); final Filter filter = new Filter(uuid); filter.setName(name); filter.setExpression(expression); return filter; }
@Override public boolean completeEquals(final Object obj) { return Filter.class.isInstance(obj) && super.completeEquals(obj) && Objects .equal(((Filter) obj).getExpression(), getExpression()); } }
@Override public FilterMorphScriptBuilder apply(final Task task) throws DMPConverterException { final Optional<Filter> optionalSkipFilter = Optional.ofNullable(task.getJob().getSkipFilter()); if (!optionalSkipFilter.isPresent()) { LOG.debug("there is no skip filter at job '{}' of task '{}'", task.getJob().getUuid(), task.getUuid()); return this; } final Filter skipFilter = optionalSkipFilter.get(); final Optional<String> optionalSkipFilterExpression = Optional.ofNullable(skipFilter.getExpression()); if (!optionalSkipFilterExpression.isPresent()) { LOG.debug("there is no filter expression in skip filter '{}' of job '{}' of task '{}'", skipFilter.getUuid(), task.getJob().getUuid(), task.getUuid()); return this; } final String filterExpressionString = optionalSkipFilterExpression.get(); final Map<String, FilterExpression> filterExpressionMap = extractFilterExpressions(filterExpressionString); if (filterExpressionMap == null || filterExpressionMap.isEmpty()) { LOG.debug("there are no filter conditions in filter expression in skip filter '{}' of job '{}' of task '{}'", skipFilter.getUuid(), task.getJob().getUuid(), task.getUuid()); return this; } super.apply(task); metaName.setTextContent(SKIP_FILTER + task.getJob().getUuid()); final String attributePathStringXMLEscaped = Iterators.getLast(filterExpressionMap.keySet().iterator()); addFilter(attributePathStringXMLEscaped, COMBINE_VALUE_VARIABLE, filterExpressionMap, rules, false); return this; }
@Test public void simpleFilterTest() { final String expression = "SELECT ?identifier ?url\n" + "WHERE {\n" + " ?record custmabxml:metadata ?metadata ;\n" + " custmabxml:header ?header .\n" + " ?header custmabxml:identifier ?identifier .\n" + " ?metadata m:record ?mabrecord .\n" + " ?mabrecord m:datafield ?dataField .\n" + " ?dataField m:tag \"088\" ;\n" + " m:ind1 \"a\" ;\n" + " m:subfield ?subField .\n" + " ?subField rdf:value ?url .\n" + "}"; final String uuid = UUIDService.getUUID(Filter.class.getSimpleName()); final Filter filter = new Filter(uuid); // filter.setId(UUID.randomUUID().toString()); filter.setExpression(expression); String json = null; try { json = objectMapper.writeValueAsString(filter); } catch (final JsonProcessingException e) { e.printStackTrace(); } FilterTest.LOG.debug("filter json: " + json); } }
protected String getFilterExpression(final Filter filter) { if (filter != null) { final String filterExpressionString = filter.getExpression(); if (filterExpressionString != null && !filterExpressionString.isEmpty()) { return StringEscapeUtils.unescapeXml(filterExpressionString); } } return null; }
/** * {@inheritDoc}<br/> * Updates the name and expression of the filter. */ @Override protected Filter prepareObjectForUpdate(final Filter objectWithUpdates, final Filter object) { super.prepareObjectForUpdate(objectWithUpdates, object); object.setExpression(objectWithUpdates.getExpression()); return object; }
/** * {@inheritDoc} <br /> * Assert the filter expressions are equal. */ @Override public void compareObjects(final Filter expectedFilter, final Filter actualFilter) throws JsonProcessingException, JSONException { super.compareObjects(expectedFilter, actualFilter); if (expectedFilter.getExpression() != null) { Assert.assertNotNull(actualFilter.getExpression()); Assert.assertEquals("the filter expressions should be equal", expectedFilter.getExpression(), actualFilter.getExpression()); } else { Assert.assertNull(actualFilter.getExpression()); } }