@Override @SuppressWarnings({"unchecked", "rawtypes"}) protected boolean evaluateAndPopulateValueStores( GraphRewrite event, EvaluationContext context, FrameCreationContext frameCreationContext) { ParameterStore store = DefaultParameterStore.getInstance(context); QueryBuilderFrom query = Query.fromType(ParameterWiringTestModel.class); if (!StringUtils.isBlank(fromVarname)) { query = Query.from(fromVarname); } Pattern compiledPattern = pattern.getCompiledPattern(store); query.withProperty( ParameterWiringTestModel.VALUE, QueryPropertyComparisonType.REGEX, compiledPattern.pattern()); String uuid = UUID.randomUUID().toString(); query.as(uuid); List<WindupVertexFrame> allFrameResults = new ArrayList<>(); if (query.evaluate(event, context)) { Iterable<? extends WindupVertexFrame> frames = Variables.instance(event).findVariable(uuid); for (WindupVertexFrame frame : frames) { ParameterWiringTestModel model = (ParameterWiringTestModel) frame; ParameterizedPatternResult parseResult = pattern.parse(model.getValue()); if (parseResult.matches()) { Map<String, List<WindupVertexFrame>> variables = new LinkedHashMap<>(); frameCreationContext.beginNew((Map) variables); if (parseResult.submit(event, context)) { allFrameResults.add(model); Maps.addListValue(variables, varname, model); } else { System.out.println("nope: " + model); frameCreationContext.rollback(); } } else { System.out.println("nope: " + model); } } Variables.instance(event).removeVariable(uuid); Variables.instance(event).setVariable(varname, allFrameResults); return true; } return false; }
@Override protected boolean evaluateWithValueStore( GraphRewrite event, EvaluationContext context, FrameContext frameContext) { ParameterStore store = DefaultParameterStore.getInstance(context); QueryBuilderFrom query = Query.fromType(ParameterWiringTestModel.class); if (!StringUtils.isBlank(fromVarname)) { query = Query.from(fromVarname); } Pattern compiledPattern = pattern.getCompiledPattern(store); query.withProperty( ParameterWiringTestModel.VALUE, QueryPropertyComparisonType.REGEX, compiledPattern.pattern()); String uuid = UUID.randomUUID().toString(); query.as(uuid); if (query.evaluate(event, context)) { boolean result = false; List<WindupVertexFrame> results = new ArrayList<>(); Iterable<? extends WindupVertexFrame> frames = Variables.instance(event).findVariable(uuid); for (WindupVertexFrame frame : frames) { ParameterWiringTestModel model = (ParameterWiringTestModel) frame; String value = model.getValue(); ParameterizedPatternResult parseResult = pattern.parse(value); if (parseResult.submit(event, context)) { result = true; results.add(model); } } Variables.instance(event).removeVariable(uuid); if (result) { Variables.instance(event).setVariable(varname, results); return true; } } frameContext.reject(); return false; }