You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2012/04/22 18:28:17 UTC
svn commit: r1328894 - in /cxf/trunk/tools/wadlto/jaxrs/src:
main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java
Author: sergeyb
Date: Sun Apr 22 16:28:17 2012
New Revision: 1328894
URL: http://svn.apache.org/viewvc?rev=1328894&view=rev
Log:
[CXF-4256] Some updates to the code generating enum classes
Modified:
cxf/trunk/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
cxf/trunk/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java
Modified: cxf/trunk/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java?rev=1328894&r1=1328893&r2=1328894&view=diff
==============================================================================
--- cxf/trunk/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java (original)
+++ cxf/trunk/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java Sun Apr 22 16:28:17 2012
@@ -905,7 +905,7 @@ public class SourceGenerator {
.append(";").append(getLineSep()).append(getLineSep());
sbCode.append("public enum " + clsName);
- sbCode.append(" {" + getLineSep());
+ openBlock(sbCode);
for (int i = 0; i < options.size(); i++) {
String value = options.get(i).getAttribute("value");
@@ -920,31 +920,53 @@ public class SourceGenerator {
}
sbCode.append(TAB).append("private String value;").append(getLineSep());
- sbCode.append(TAB).append("private ").append(clsName).append("(String v) ").append("{")
- .append(getLineSep());
- sbCode.append(TAB).append(TAB).append("this.value = v;").append(getLineSep());
- sbCode.append(TAB).append("}").append(getLineSep());
-
- sbCode.append(TAB).append("public static ").append(clsName).append(" fromString(String value) ")
- .append("{").append(getLineSep());
- sbCode.append(TAB).append(TAB);
- sbCode.append("if (").append("value").append(" != null) {").append(getLineSep());
- sbCode.append(TAB).append(TAB).append(TAB);
- sbCode.append("for (").append(clsName).append(" v : ").append(clsName).append(".values()) {")
- .append(getLineSep());
- sbCode.append(TAB).append(TAB).append(TAB).append(TAB);
- sbCode.append("if (value.equalsIgnoreCase(v.value)) {").append(getLineSep());
- sbCode.append(TAB).append(TAB).append(TAB).append(TAB).append(TAB).append("return v;")
- .append(getLineSep());
- sbCode.append(TAB).append(TAB).append(TAB).append(TAB).append("}").append(getLineSep());
- sbCode.append(TAB).append(TAB).append(TAB).append("}").append(getLineSep());
- sbCode.append(TAB).append(TAB).append("}").append(getLineSep());
- sbCode.append(TAB).append(TAB).append("return null;").append(getLineSep());
- sbCode.append(TAB).append("}").append(getLineSep());
+ sbCode.append(TAB).append("private ").append(clsName).append("(String v)");
+ openBlock(sbCode);
+ tab(sbCode, 2).append("this.value = v;").append(getLineSep());
+ tabCloseBlock(sbCode, 1);
+
+ sbCode.append(TAB).append("public static ")
+ .append(clsName).append(" fromString(String value)");
+ openBlock(sbCode);
+ tab(sbCode, 2);
+ sbCode.append("if (").append("value").append(" != null)");
+ openBlock(sbCode);
+ tab(sbCode, 3);
+ sbCode.append("for (").append(clsName).append(" v : ")
+ .append(clsName).append(".values())");
+ openBlock(sbCode);
+ tab(sbCode, 4);
+ sbCode.append("if (value.equalsIgnoreCase(v.value))");
+ openBlock(sbCode);
+ tab(sbCode, 5);
+ sbCode.append("return v;").append(getLineSep());
+ tabCloseBlock(sbCode, 4);
+ tabCloseBlock(sbCode, 3);
+ tabCloseBlock(sbCode, 2);
+ tab(sbCode, 2);
+ sbCode.append("throw new IllegalArgumentException();").append(getLineSep());
+ tabCloseBlock(sbCode, 1);
sbCode.append("}");
createJavaSourceFile(src, new QName(classPackage, clsName), sbCode, sbImports, false);
}
+ private static StringBuilder tab(StringBuilder sb, int count) {
+ for (int i = 0; i < count; i++) {
+ sb.append(TAB);
+ }
+ return sb;
+ }
+
+ private StringBuilder tabCloseBlock(StringBuilder sb, int count) {
+ tab(sb, count).append("}").append(getLineSep());
+ return sb;
+ }
+
+ private StringBuilder openBlock(StringBuilder sb) {
+ sb.append(" {").append(getLineSep());
+ return sb;
+ }
+
private String getTypicalClassName(String name) {
String theName = name.toUpperCase();
if (theName.length() == 1) {
Modified: cxf/trunk/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java?rev=1328894&r1=1328893&r2=1328894&view=diff
==============================================================================
--- cxf/trunk/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java (original)
+++ cxf/trunk/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java Sun Apr 22 16:28:17 2012
@@ -32,9 +32,42 @@ import org.junit.Test;
public class JAXRSContainerTest extends ProcessorTestBase {
+ public enum Theid {
+ ONE("one"),
+ TWO("two");
+ private String value;
+ private Theid(String v) {
+ this.value = v;
+ }
+ public static Theid fromString(String value) {
+ if (value != null) {
+ for (Theid v : Theid.values()) {
+ if (value.equalsIgnoreCase(v.value)) {
+ return v;
+ }
+ }
+ }
+ throw new IllegalArgumentException();
+ }
+ }
+
+ @Test
+ public void test1() {
+ try {
+ assertSame(Theid.ONE, Theid.fromString("on"));
+ fail();
+ } catch (IllegalArgumentException ex) {
+
+ }
+ }
+
+
@Test
public void testCodeGenInterfaces() {
try {
+
+
+
JAXRSContainer container = new JAXRSContainer(null);
ToolContext context = new ToolContext();