Skip to content
This repository was archived by the owner on Jul 30, 2021. It is now read-only.

Commit 1b777cd

Browse files
committed
migrated codegen to use Guava
1 parent 6d49f9b commit 1b777cd

10 files changed

Lines changed: 48 additions & 69 deletions

File tree

pom.xml

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.mysema.codegen</groupId>
66
<artifactId>codegen</artifactId>
7-
<version>0.4.10</version>
7+
<version>0.4.11</version>
88
<name>Codegen</name>
99
<description>Code generation and compilation for Java</description>
1010
<parent>
@@ -19,20 +19,16 @@
1919
<properties>
2020
<commons.collections.version>4.01</commons.collections.version>
2121
<commons.lang.version>3.0.1</commons.lang.version>
22+
<guava.version>11.0.2</guava.version>
2223
</properties>
2324

2425
<dependencies>
25-
<dependency>
26-
<groupId>net.sourceforge.collections</groupId>
27-
<artifactId>collections-generic</artifactId>
28-
<version>${commons.collections.version}</version>
29-
</dependency>
3026
<dependency>
31-
<groupId>org.apache.commons</groupId>
32-
<artifactId>commons-lang3</artifactId>
33-
<version>${commons.lang.version}</version>
27+
<groupId>com.google.guava</groupId>
28+
<artifactId>guava</artifactId>
29+
<version>11.0.2</version>
3430
</dependency>
35-
31+
3632
<!-- test -->
3733
<dependency>
3834
<groupId>junit</groupId>
@@ -47,17 +43,10 @@
4743
</exclusions>
4844
</dependency>
4945
<dependency>
50-
<groupId>org.apache.commons</groupId>
51-
<artifactId>commons-io</artifactId>
52-
<version>1.3.2</version>
46+
<groupId>javax.validation</groupId>
47+
<artifactId>validation-api</artifactId>
48+
<version>1.0.CR3</version>
5349
<scope>test</scope>
54-
</dependency>
55-
56-
<dependency>
57-
<groupId>javax.validation</groupId>
58-
<artifactId>validation-api</artifactId>
59-
<version>1.0.CR3</version>
60-
<scope>test</scope>
6150
</dependency>
6251

6352
</dependencies>

src/main/java/com/mysema/codegen/AbstractCodeWriter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import java.io.IOException;
99

10-
import org.apache.commons.lang3.StringUtils;
10+
import com.google.common.base.Strings;
1111

1212
/**
1313
* @author tiwe
@@ -34,7 +34,7 @@ public AbstractCodeWriter(Appendable appendable, int spaces) {
3434
}
3535
this.appendable = appendable;
3636
this.spaces = spaces;
37-
this.spacesString = StringUtils.leftPad("", spaces);
37+
this.spacesString = Strings.repeat(" ", spaces);
3838
}
3939

4040
@Override

src/main/java/com/mysema/codegen/CodeWriter.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@
99
import java.lang.annotation.Annotation;
1010
import java.util.Collection;
1111

12-
import org.apache.commons.collections15.Transformer;
13-
12+
import com.google.common.base.Function;
1413
import com.mysema.codegen.model.Parameter;
1514
import com.mysema.codegen.model.Type;
1615

@@ -34,7 +33,7 @@ public interface CodeWriter extends Appendable {
3433

3534
CodeWriter beginClass(Type type, Type superClass, Type... interfaces) throws IOException;
3635

37-
<T> CodeWriter beginConstructor(Collection<T> params, Transformer<T, Parameter> transformer) throws IOException;
36+
<T> CodeWriter beginConstructor(Collection<T> params, Function<T, Parameter> transformer) throws IOException;
3837

3938
CodeWriter beginConstructor(Parameter... params) throws IOException;
4039

@@ -43,12 +42,12 @@ public interface CodeWriter extends Appendable {
4342
CodeWriter beginLine(String... segments) throws IOException;
4443

4544
<T> CodeWriter beginPublicMethod(Type returnType, String methodName, Collection<T> parameters,
46-
Transformer<T, Parameter> transformer) throws IOException;
45+
Function<T, Parameter> transformer) throws IOException;
4746

4847
CodeWriter beginPublicMethod(Type returnType, String methodName, Parameter... args) throws IOException;
4948

5049
<T> CodeWriter beginStaticMethod(Type type, String name, Collection<T> params,
51-
Transformer<T, Parameter> transformer) throws IOException;
50+
Function<T, Parameter> transformer) throws IOException;
5251

5352
CodeWriter beginStaticMethod(Type returnType, String methodName, Parameter... args) throws IOException;
5453

src/main/java/com/mysema/codegen/JavaWriter.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@
2222
import java.util.Set;
2323
import java.util.Stack;
2424

25-
import org.apache.commons.collections15.Transformer;
26-
import org.apache.commons.lang3.StringEscapeUtils;
27-
25+
import com.google.common.base.Function;
2826
import com.mysema.codegen.model.Parameter;
2927
import com.mysema.codegen.model.Type;
3028

@@ -160,7 +158,7 @@ private void annotationConstant(Object value) throws IOException {
160158
append(enumValue.getDeclaringClass().getName() + DOT + enumValue.name());
161159
}
162160
} else if (value instanceof String) {
163-
String escaped = StringEscapeUtils.escapeJava(value.toString());
161+
String escaped = StringUtils.escapeJava(value.toString());
164162
append(QUOTE + escaped.replace("\\/", "/") + QUOTE);
165163
} else {
166164
throw new IllegalArgumentException("Unsupported annotation value : " + value);
@@ -205,7 +203,7 @@ public JavaWriter beginClass(Type type, Type superClass, Type... interfaces) thr
205203

206204
@Override
207205
public <T> JavaWriter beginConstructor(Collection<T> parameters,
208-
Transformer<T, Parameter> transformer) throws IOException {
206+
Function<T, Parameter> transformer) throws IOException {
209207
types.push(types.peek());
210208
beginLine(PUBLIC + types.peek().getSimpleName()).params(parameters, transformer)
211209
.append(" {").nl();
@@ -249,7 +247,7 @@ private JavaWriter beginMethod(String modifiers, Type returnType, String methodN
249247

250248
@Override
251249
public <T> JavaWriter beginPublicMethod(Type returnType, String methodName,
252-
Collection<T> parameters, Transformer<T, Parameter> transformer) throws IOException {
250+
Collection<T> parameters, Function<T, Parameter> transformer) throws IOException {
253251
return beginMethod(PUBLIC, returnType, methodName, transform(parameters, transformer));
254252
}
255253

@@ -261,7 +259,7 @@ public JavaWriter beginPublicMethod(Type returnType, String methodName, Paramete
261259

262260
@Override
263261
public <T> JavaWriter beginStaticMethod(Type returnType, String methodName,
264-
Collection<T> parameters, Transformer<T, Parameter> transformer) throws IOException {
262+
Collection<T> parameters, Function<T, Parameter> transformer) throws IOException {
265263
return beginMethod(PUBLIC_STATIC, returnType, methodName,
266264
transform(parameters, transformer));
267265
}
@@ -362,15 +360,15 @@ public JavaWriter packageDecl(String packageName) throws IOException {
362360
return line(PACKAGE + packageName + SEMICOLON).nl();
363361
}
364362

365-
private <T> JavaWriter params(Collection<T> parameters, Transformer<T, Parameter> transformer)
363+
private <T> JavaWriter params(Collection<T> parameters, Function<T, Parameter> transformer)
366364
throws IOException {
367365
append("(");
368366
boolean first = true;
369367
for (T param : parameters) {
370368
if (!first) {
371369
append(COMMA);
372370
}
373-
param(transformer.transform(param));
371+
param(transformer.apply(param));
374372
first = false;
375373
}
376374
append(")");
@@ -470,11 +468,11 @@ public JavaWriter suppressWarnings(String type) throws IOException {
470468
}
471469

472470
private <T> Parameter[] transform(Collection<T> parameters,
473-
Transformer<T, Parameter> transformer) {
471+
Function<T, Parameter> transformer) {
474472
Parameter[] rv = new Parameter[parameters.size()];
475473
int i = 0;
476474
for (T value : parameters) {
477-
rv[i++] = transformer.transform(value);
475+
rv[i++] = transformer.apply(value);
478476
}
479477
return rv;
480478
}

src/main/java/com/mysema/codegen/ScalaWriter.java

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,7 @@
1414
import java.util.HashSet;
1515
import java.util.Set;
1616

17-
import org.apache.commons.collections15.Transformer;
18-
import org.apache.commons.lang3.StringEscapeUtils;
19-
import org.apache.commons.lang3.StringUtils;
20-
17+
import com.google.common.base.Function;
2118
import com.mysema.codegen.model.Parameter;
2219
import com.mysema.codegen.model.Type;
2320
import com.mysema.codegen.model.Types;
@@ -170,7 +167,7 @@ private void annotationConstant(Object value) throws IOException {
170167
append(enumValue.getDeclaringClass().getName() + DOT + enumValue.name());
171168
}
172169
} else if (value instanceof String) {
173-
append(QUOTE + StringEscapeUtils.escapeJava(value.toString()) + QUOTE);
170+
append(QUOTE + StringUtils.escapeJava(value.toString()) + QUOTE);
174171
} else {
175172
throw new IllegalArgumentException("Unsupported annotation value : " + value);
176173
}
@@ -242,7 +239,7 @@ public ScalaWriter beginClass(Type type, Type superClass, Type... interfaces)
242239

243240
@Override
244241
public <T> ScalaWriter beginConstructor(Collection<T> parameters,
245-
Transformer<T, Parameter> transformer) throws IOException {
242+
Function<T, Parameter> transformer) throws IOException {
246243
beginLine(PUBLIC + type.getSimpleName()).params(parameters, transformer).append(" {").nl();
247244
return goIn();
248245
}
@@ -291,7 +288,7 @@ private ScalaWriter beginMethod(String modifiers, Type returnType, String method
291288

292289
@Override
293290
public <T> ScalaWriter beginPublicMethod(Type returnType, String methodName,
294-
Collection<T> parameters, Transformer<T, Parameter> transformer) throws IOException {
291+
Collection<T> parameters, Function<T, Parameter> transformer) throws IOException {
295292
return beginMethod(DEF, returnType, methodName, transform(parameters, transformer));
296293
}
297294

@@ -303,7 +300,7 @@ public ScalaWriter beginPublicMethod(Type returnType, String methodName, Paramet
303300

304301
@Override
305302
public <T> ScalaWriter beginStaticMethod(Type returnType, String methodName,
306-
Collection<T> parameters, Transformer<T, Parameter> transformer) throws IOException {
303+
Collection<T> parameters, Function<T, Parameter> transformer) throws IOException {
307304
return beginMethod(DEF, returnType, methodName, transform(parameters, transformer));
308305
}
309306

@@ -450,15 +447,15 @@ public ScalaWriter packageDecl(String packageName) throws IOException {
450447
return line(PACKAGE + packageName).nl();
451448
}
452449

453-
private <T> ScalaWriter params(Collection<T> parameters, Transformer<T, Parameter> transformer)
450+
private <T> ScalaWriter params(Collection<T> parameters, Function<T, Parameter> transformer)
454451
throws IOException {
455452
append("(");
456453
boolean first = true;
457454
for (T param : parameters) {
458455
if (!first) {
459456
append(COMMA);
460457
}
461-
param(transformer.transform(param));
458+
param(transformer.apply(param));
462459
first = false;
463460
}
464461
append(")");
@@ -558,11 +555,11 @@ public ScalaWriter suppressWarnings(String type) throws IOException {
558555
}
559556

560557
private <T> Parameter[] transform(Collection<T> parameters,
561-
Transformer<T, Parameter> transformer) {
558+
Function<T, Parameter> transformer) {
562559
Parameter[] rv = new Parameter[parameters.size()];
563560
int i = 0;
564561
for (T value : parameters) {
565-
rv[i++] = transformer.transform(value);
562+
rv[i++] = transformer.apply(value);
566563
}
567564
return rv;
568565
}

src/main/java/com/mysema/codegen/model/TypeExtends.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import java.util.Collections;
99
import java.util.Set;
1010

11-
import org.apache.commons.lang3.StringUtils;
11+
import com.google.common.base.Strings;
1212

1313
/**
1414
* @author tiwe
@@ -41,7 +41,7 @@ public String getGenericName(boolean asArgType, Set<String> packages, Set<String
4141
return "?";
4242
} else {
4343
String genericName = super.getGenericName(true, packages, classes);
44-
return StringUtils.isEmpty(genericName) ? "?" : "? extends " + genericName;
44+
return Strings.isNullOrEmpty(genericName) ? "?" : "? extends " + genericName;
4545
}
4646
} else {
4747
return super.getGenericName(asArgType, packages, classes);

src/test/java/com/mysema/codegen/JavaWriterTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,12 @@
1515
import java.lang.annotation.Target;
1616
import java.util.Arrays;
1717

18-
import org.apache.commons.collections15.Transformer;
19-
import org.apache.commons.io.IOUtils;
2018
import org.junit.Before;
2119
import org.junit.Test;
2220

21+
import com.google.common.base.Charsets;
22+
import com.google.common.base.Function;
23+
import com.google.common.io.Resources;
2324
import com.mysema.codegen.model.ClassType;
2425
import com.mysema.codegen.model.Parameter;
2526
import com.mysema.codegen.model.SimpleType;
@@ -29,9 +30,9 @@
2930

3031
public class JavaWriterTest {
3132

32-
private static final Transformer<Parameter, Parameter> transformer = new Transformer<Parameter, Parameter>() {
33+
private static final Function<Parameter, Parameter> transformer = new Function<Parameter, Parameter>() {
3334
@Override
34-
public Parameter transform(Parameter input) {
35+
public Parameter apply(Parameter input) {
3536
return input;
3637
}
3738
};
@@ -44,8 +45,7 @@ public Parameter transform(Parameter input) {
4445

4546
private static void match(String resource, String text) throws IOException {
4647
// TODO : try to compile ?
47-
String expected = IOUtils
48-
.toString(JavaWriterTest.class.getResourceAsStream(resource), "UTF-8")
48+
String expected = Resources.toString(JavaWriterTest.class.getResource(resource), Charsets.UTF_8)
4949
.replace("\r\n", "\n").trim();
5050
String actual = text.trim();
5151
assertEquals(expected, actual);

src/test/java/com/mysema/codegen/ScalaWriterTest.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,10 @@
1414

1515
import javax.validation.constraints.Max;
1616

17-
import org.apache.commons.collections15.Transformer;
18-
import org.apache.commons.lang3.StringUtils;
1917
import org.junit.Before;
2018
import org.junit.Test;
2119

20+
import com.google.common.base.Function;
2221
import com.mysema.codegen.model.ClassType;
2322
import com.mysema.codegen.model.Parameter;
2423
import com.mysema.codegen.model.SimpleType;
@@ -28,9 +27,9 @@
2827

2928
public class ScalaWriterTest {
3029

31-
private static final Transformer<Parameter, Parameter> transformer = new Transformer<Parameter, Parameter>() {
30+
private static final Function<Parameter, Parameter> transformer = new Function<Parameter, Parameter>() {
3231
@Override
33-
public Parameter transform(Parameter input) {
32+
public Parameter apply(Parameter input) {
3433
return input;
3534
}
3635
};

src/test/java/com/mysema/codegen/support/ClassUtilsTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import static org.junit.Assert.assertEquals;
99

1010
import java.util.ArrayList;
11-
import java.util.Collection;
1211
import java.util.Collections;
1312
import java.util.HashMap;
1413
import java.util.HashSet;
@@ -17,7 +16,6 @@
1716
import java.util.Map;
1817
import java.util.Set;
1918

20-
import org.apache.commons.collections15.Bag;
2119
import org.junit.Test;
2220

2321
public class ClassUtilsTest {
@@ -43,7 +41,7 @@ public void Normalize() {
4341
assertEquals(List.class, ClassUtils.normalize(ArrayList.class));
4442
assertEquals(Set.class, ClassUtils.normalize(HashSet.class));
4543
assertEquals(Map.class, ClassUtils.normalize(HashMap.class));
46-
assertEquals(Collection.class, ClassUtils.normalize(Bag.class));
44+
// assertEquals(Collection.class, ClassUtils.normalize(Bag.class));
4745
}
4846

4947
}

template.mf

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ Bundle-Name: Codegen
33
Bundle-Vendor: Mysema
44
Bundle-ManifestVersion: 2
55
Import-Template:
6-
javax.annotation.*;version="0",
7-
org.apache.commons.collections15.*;version="${commons.collections.version}",
8-
org.apache.commons.lang3.*;version="${commons.lang.version}",
9-
javax.tools.*;version="0"
6+
javax.annotation.*;version="0",
7+
javax.tools.*;version="0",
8+
com.google.common.*;version="${guava.version}"

0 commit comments

Comments
 (0)