@Override public void visitFreeFormLine(final FreeFormLine ffl) { if (ffl.getText() == null) { return; } final Matcher matcherTemplateKey = patternTemplateKey.matcher(ffl.getText()); boolean found = matcherTemplateKey.find(); if (found) { buf.append("@if{"); boolean addAnd = false; while (found) { String varName = matcherTemplateKey.group(1); if (addAnd) { buf.append(" && "); } buf.append(varName + " != empty"); addAnd = true; found = matcherTemplateKey.find(); } buf.append("}"); super.visitFreeFormLine(ffl); buf.append("@end{}"); } else { // no variables found super.visitFreeFormLine(ffl); } }
@Override public void visitFreeFormLine(final FreeFormLine ffl) { StringBuffer interpolatedResult = new StringBuffer(); final Matcher matcherTemplateKey = patternTemplateKey.matcher(ffl.getText()); while (matcherTemplateKey.find()) { String varName = matcherTemplateKey.group(1); String value = rowDataProvider.getTemplateKeyValue(varName); // All vars must be populated for a single FreeFormLine if (StringUtils.isEmpty(value)) { return; } matcherTemplateKey.appendReplacement(interpolatedResult, value); } matcherTemplateKey.appendTail(interpolatedResult); //Don't update the original FreeFormLine object FreeFormLine fflClone = new FreeFormLine(); fflClone.setText(interpolatedResult.toString()); super.visitFreeFormLine(fflClone); }
_isSubPattern); } else if (pattern.getRightPattern() instanceof FreeFormLine) { visitFreeFormLine((FreeFormLine) pattern.getRightPattern()); } else { throw new IllegalArgumentException("Unsupported pattern " + pattern.getRightPattern() + " for FROM COLLECT");