public static AbstractDdlReveng.LineParseOutput substituteTablespace(String input) { Pattern compile = Pattern.compile("(\\s+IN\\s+)\"(\\w+)\"(\\s*)", Pattern.DOTALL); StringBuffer sb = new StringBuffer(input.length()); String addedToken = null; String addedValue = null; Matcher matcher = compile.matcher(input); if (matcher.find()) { addedToken = matcher.group(2) + "_token"; addedValue = matcher.group(2); matcher.appendReplacement(sb, matcher.group(1) + "\"\\${" + addedToken + "}\"" + matcher.group(3)); } matcher.appendTail(sb); return new AbstractDdlReveng.LineParseOutput(sb.toString()).withToken(addedToken, addedValue); }
sqlSnippet = lineParseOutput.getLineOutput();
sqlSnippet = lineParseOutput.getLineOutput();
public static AbstractDdlReveng.LineParseOutput substituteTablespace(String input) { Pattern compile = Pattern.compile("(\\s+IN\\s+)\"(\\w+)\"(\\s*)", Pattern.DOTALL); StringBuffer sb = new StringBuffer(input.length()); String addedToken = null; String addedValue = null; Matcher matcher = compile.matcher(input); if (matcher.find()) { addedToken = matcher.group(2) + "_token"; addedValue = matcher.group(2); matcher.appendReplacement(sb, matcher.group(1) + "\"\\${" + addedToken + "}\"" + matcher.group(3)); } matcher.appendTail(sb); return new AbstractDdlReveng.LineParseOutput(sb.toString()).withToken(addedToken, addedValue); }
@Test public void testSubstituteTablespace() { String input = "create table (abc xyz) IN \"myTablespace\""; String expected = "create table (abc xyz) IN \"${myTablespace_token}\""; assertEquals("replace the tablespace token if it is found", expected, Db2lookReveng.substituteTablespace(input).getLineOutput()); String noConvertInput = "create table (abc xyz) in \"myTablespace\""; assertEquals("lowercase 'in' should not get picked up for conversion", noConvertInput, Db2lookReveng.substituteTablespace(noConvertInput).getLineOutput()); }
@Override public LineParseOutput valueOf(String object) { Matcher matcher = packageBodyPattern.matcher(object); if (matcher.find()) { String output = object.substring(0, matcher.start()) + "\n//// BODY\n" + object.substring(matcher.start()); return new LineParseOutput(output); } return new LineParseOutput(object); } };
@Override public AbstractDdlReveng.LineParseOutput valueOf(String input) { return new AbstractDdlReveng.LineParseOutput(removeQuotes(input)); } };
@Test public void testSubstituteTablespace() { String input = "create table (abc xyz) IN \"myTablespace\""; String expected = "create table (abc xyz) IN \"${myTablespace_token}\""; assertEquals("replace the tablespace token if it is found", expected, Db2lookReveng.substituteTablespace(input).getLineOutput()); String noConvertInput = "create table (abc xyz) in \"myTablespace\""; assertEquals("lowercase 'in' should not get picked up for conversion", noConvertInput, Db2lookReveng.substituteTablespace(noConvertInput).getLineOutput()); }
@Override public AbstractDdlReveng.LineParseOutput valueOf(String input) { return new AbstractDdlReveng.LineParseOutput(removeQuotes(input)); } };
@Override public LineParseOutput valueOf(String object) { Matcher matcher = packageBodyPattern.matcher(object); if (matcher.find()) { String output = object.substring(0, matcher.start()) + "\n//// BODY\n" + object.substring(matcher.start()); return new LineParseOutput(output); } return new LineParseOutput(object); } };