From 87e4b5fdd021445c9c028cfa50611cc96cb79bc3 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 18 Sep 2013 10:42:39 +0200 Subject: [PATCH] Translate commercial code sections to xxx xx xxxxxx to preserve lines of code --- jOOQ-tools/src/org/jooq/oss/OSS.xtend | 45 ++++++++++++------- .../java/org/jooq/impl/SelectQueryImpl.java | 2 + 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/jOOQ-tools/src/org/jooq/oss/OSS.xtend b/jOOQ-tools/src/org/jooq/oss/OSS.xtend index f9e7f00dda..3932d6e933 100644 --- a/jOOQ-tools/src/org/jooq/oss/OSS.xtend +++ b/jOOQ-tools/src/org/jooq/oss/OSS.xtend @@ -131,7 +131,21 @@ For more information, please visit: http://www.jooq.org/licenses'''); ex.submit[ | var content = read(in); - for (pair : patterns) { + for (pattern : translateAll) { + val m = pattern.matcher(content); + + while (m.find) { + content = content.substring(0, m.start) + + m.group(1) + + m.group(2).replaceAll("\\S", "x") + + m.group(3) + + content.substring(m.end); + } + } + for (pair : replaceFirst) { + content = pair.left.matcher(content).replaceAll(pair.right); + } + for (pair : replaceAll) { content = pair.left.matcher(content).replaceAll(pair.right); } @@ -140,12 +154,14 @@ For more information, please visit: http://www.jooq.org/licenses'''); } } - val patterns = new ArrayList>(); + val translateAll = new ArrayList(); + val replaceAll = new ArrayList>(); + val replaceFirst = new ArrayList>(); new() { // Replace the Java / Scala / Xtend license header - patterns.add(new ImmutablePair(compile('''(?s:/\*\*[\r\n] \* Copyright.*?eula[\r\n] \*/)'''), ''' + replaceFirst.add(new ImmutablePair(compile('''(?s:/\*\*[\r\n] \* Copyright.*?eula[\r\n] \*/)'''), ''' /** * Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com) * All rights reserved. @@ -172,27 +188,24 @@ For more information, please visit: http://www.jooq.org/licenses'''); */''')); // Remove sections of commercial code - patterns.add(new ImmutablePair(compile('''(?s:[ \t]+«quote("/* [com] */")»[ \t]*[\r\n]{0,2}.*?«quote("/* [/com] */")»[ \t]*[\r\n]{0,2})'''), "")); - patterns.add(new ImmutablePair(compile('''(?s:«quote("/* [com] */")».*?«quote("/* [/com] */")»)'''), "")); - - patterns.add(new ImmutablePair(compile('''(?s:[ \t]+«quote("")»[ \t]*[\r\n]{0,2}.*?«quote("")»[ \t]*[\r\n]{0,2})'''), "")); - patterns.add(new ImmutablePair(compile('''(?s:«quote("")».*?«quote("")»)'''), "")); + translateAll.add(compile('''(?s:(/\* \[com\])( \*.*?/\* )(\[/com\] \*/))''')); + translateAll.add(compile('''(?s:(.*?))''')); for (d : SQLDialect::values.filter[d | d.commercial]) { // Remove commercial dialects from @Support annotations - patterns.add(new ImmutablePair(compile('''(?s:(\@Support\([^\)]*?),\s*\b«d.name»\b([^\)]*?\)))'''), "$1$2")); - patterns.add(new ImmutablePair(compile('''(?s:(\@Support\([^\)]*?)\b«d.name»\b,\s*([^\)]*?\)))'''), "$1$2")); - patterns.add(new ImmutablePair(compile('''(?s:(\@Support\([^\)]*?)\s*\b«d.name»\b\s*([^\)]*?\)))'''), "$1$2")); + replaceAll.add(new ImmutablePair(compile('''(?s:(\@Support\([^\)]*?),\s*\b«d.name»\b([^\)]*?\)))'''), "$1$2")); + replaceAll.add(new ImmutablePair(compile('''(?s:(\@Support\([^\)]*?)\b«d.name»\b,\s*([^\)]*?\)))'''), "$1$2")); + replaceAll.add(new ImmutablePair(compile('''(?s:(\@Support\([^\)]*?)\s*\b«d.name»\b\s*([^\)]*?\)))'''), "$1$2")); // Remove commercial dialects from Arrays.asList() expressions - patterns.add(new ImmutablePair(compile('''(asList\([^\)]*?),\s*\b«d.name»\b([^\)]*?\))'''), "$1$2")); - patterns.add(new ImmutablePair(compile('''(asList\([^\)]*?)\b«d.name»\b,\s*([^\)]*?\))'''), "$1$2")); - patterns.add(new ImmutablePair(compile('''(asList\([^\)]*?)\s*\b«d.name»\b\s*([^\)]*?\))'''), "$1$2")); + replaceAll.add(new ImmutablePair(compile('''(asList\([^\)]*?),\s*\b«d.name»\b([^\)]*?\))'''), "$1$2")); + replaceAll.add(new ImmutablePair(compile('''(asList\([^\)]*?)\b«d.name»\b,\s*([^\)]*?\))'''), "$1$2")); + replaceAll.add(new ImmutablePair(compile('''(asList\([^\)]*?)\s*\b«d.name»\b\s*([^\)]*?\))'''), "$1$2")); // Remove commercial dialects from imports - patterns.add(new ImmutablePair(compile('''import (static )?org\.jooq\.SQLDialect\.«d.name»;[\r\n]{0,2}'''), "")); - patterns.add(new ImmutablePair(compile('''import (static )?org\.jooq\.util\.«d.name.toLowerCase»\..*?;[\r\n]{0,2}'''), "")); + replaceAll.add(new ImmutablePair(compile('''import (static )?org\.jooq\.SQLDialect\.«d.name»;[\r\n]{0,2}'''), "")); + replaceAll.add(new ImmutablePair(compile('''import (static )?org\.jooq\.util\.«d.name.toLowerCase»\..*?;[\r\n]{0,2}'''), "")); } } } diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index 6b760ce72f..9112aad536 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -371,6 +371,7 @@ class SelectQueryImpl extends AbstractSelect implements Sel context.visit(getLimit()); } + /* [com] */ /** * Simulate the LIMIT / OFFSET clause in the {@link SQLDialect#DB2}, * {@link SQLDialect#SQLSERVER2008} and {@link SQLDialect#SYBASE} dialects @@ -453,6 +454,7 @@ class SelectQueryImpl extends AbstractSelect implements Sel .sql(" > ") .visit(getLimit().getLowerRownum()); } + /* [/com] */ /** * This method renders the main part of a query without the LIMIT clause.