Author: Alex.Kolonitsky
Date: 2009-11-01 11:17:29 -0500 (Sun, 01 Nov 2009)
New Revision: 15789
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/Argument.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/ClassImport.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaAnnotation.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaClass.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaComment.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaConstructor.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaField.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaImport.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaLanguageElement.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaMethod.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaModifier.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaPackage.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaPrimitive.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/MethodBody.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/MethodBodyStatement.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/MethodBodyStatementsContainer.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/RuntimeImport.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/render/JavaClassRenderer.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/render/JavaFieldRenderer.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/render/JavaLanguageElementRenderer.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/render/JavaMethodRenderer.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/BaseTagBodyConsumer.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/BaseTemplateConsumer.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/ChooseTagBodyConsumer.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/Consumer.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererClassGenerator.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererTemplateParser.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RootElementConsumer.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/StructuralTagBodyConsumer.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/TemplateBodyConsumer.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/TemplateReader.java
Log:
Code style policy
https://jira.jboss.org/jira/browse/RFPL-195
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/Argument.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/Argument.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/Argument.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
/**
@@ -27,23 +29,24 @@
*
*/
public class Argument {
- private Class<?> type;
- private String name;
-
- public static Argument arg(String name, Class<?> type) {
- return new Argument(name, type);
- }
-
- public Argument(String name, Class<?> type) {
- super();
- this.name = name;
- this.type = type;
- }
- public Class<?> getType() {
- return type;
- }
- public String getName() {
- return name;
- }
-
+ private String name;
+ private Class<?> type;
+
+ public Argument(String name, Class<?> type) {
+ super();
+ this.name = name;
+ this.type = type;
+ }
+
+ public static Argument arg(String name, Class<?> type) {
+ return new Argument(name, type);
+ }
+
+ public Class<?> getType() {
+ return type;
+ }
+
+ public String getName() {
+ return name;
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/ClassImport.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/ClassImport.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/ClassImport.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,22 +19,23 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
/**
* @author Maksim Kaszynski
*
*/
-public class ClassImport implements JavaImport{
- private Class<?> clazz;
+public class ClassImport implements JavaImport {
+ private Class<?> clazz;
- public ClassImport(Class<?> clazz) {
- super();
- this.clazz = clazz;
- }
-
- public String getName() {
- return clazz.getName();
- }
+ public ClassImport(Class<?> clazz) {
+ super();
+ this.clazz = clazz;
+ }
+ public String getName() {
+ return clazz.getName();
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaAnnotation.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaAnnotation.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaAnnotation.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,41 +19,38 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-
-
/**
* Wrapper for '@annotations
* @author Maksim Kaszynski
*
*/
public class JavaAnnotation {
-
- private Class<?> type;
-
- private List <String> arguments = new ArrayList <String>();
-
- public JavaAnnotation(Class<?> type) {
- super();
- this.type = type;
- }
+ private List<String> arguments = new ArrayList<String>();
+ private Class<?> type;
- public JavaAnnotation(Class<?> type, String ... parameters) {
- this(type);
- this.arguments = Arrays.asList(parameters);
- }
-
- public Class<?> getType() {
- return type;
- }
-
- public List<String> getArguments() {
- return arguments;
- }
-
+ public JavaAnnotation(Class<?> type) {
+ super();
+ this.type = type;
+ }
+
+ public JavaAnnotation(Class<?> type, String... parameters) {
+ this(type);
+ this.arguments = Arrays.asList(parameters);
+ }
+
+ public Class<?> getType() {
+ return type;
+ }
+
+ public List<String> getArguments() {
+ return arguments;
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaClass.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaClass.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaClass.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
import java.util.ArrayList;
@@ -33,164 +35,166 @@
* @author Maksim Kaszynski
*
*/
-public class JavaClass extends JavaLanguageElement{
- private List<JavaField> fields = new ArrayList<JavaField>();
- private List<JavaMethod> methods = new ArrayList<JavaMethod>();
- private Set<JavaImport> imports = new TreeSet<JavaImport>(
- new Comparator<JavaImport> () {
- public int compare(JavaImport o1, JavaImport o2) {
- return o1.getName().compareTo(o2.getName());
- }
- });
-
- private JavaPackage pakg;
-
- private static final JavaClass DEFAULT_SUPERCLASS = new JavaClass(Object.class);
-
- private JavaClass superClass = DEFAULT_SUPERCLASS;
-
- public JavaClass(String shortName, JavaPackage pakg, Class<?> superClass) {
- this(shortName, pakg);
- setSuperClass(new JavaClass(superClass));
- }
-
- public JavaClass() {
- super();
- }
+public class JavaClass extends JavaLanguageElement {
+ private static final JavaClass DEFAULT_SUPERCLASS = new JavaClass(Object.class);
+ private List<JavaField> fields = new ArrayList<JavaField>();
+ private List<JavaMethod> methods = new ArrayList<JavaMethod>();
+ private Set<JavaImport> imports = new TreeSet<JavaImport>(new
Comparator<JavaImport>() {
+ public int compare(JavaImport o1, JavaImport o2) {
+ return o1.getName().compareTo(o2.getName());
+ }
+ });
+ private JavaClass superClass = DEFAULT_SUPERCLASS;
+ private JavaPackage pakg;
- public JavaClass(String shortName, JavaPackage pakg) {
- super(shortName);
- this.pakg = pakg;
- }
-
- public JavaClass(Class<?> clazz) {
- this(clazz.getSimpleName(), new JavaPackage(clazz.getPackage()));
- }
+ public JavaClass() {
+ super();
+ }
- public void addImport(String name) {
- imports.add(new RuntimeImport(name));
- }
-
- public void addImport(Class<?> claz) {
- if (shouldAddToImports(claz)) {
- imports.add(new ClassImport(claz));
- }
- }
-
- @Override
- public void addAnnotation(JavaAnnotation annotation) {
- super.addAnnotation(annotation);
- addImport(annotation.getType());
- }
-
- public void addField(JavaField field) {
- fields.add(field);
- addImport(field.getType());
+ public JavaClass(Class<?> clazz) {
+ this(clazz.getSimpleName(), new JavaPackage(clazz.getPackage()));
+ }
- List<JavaAnnotation> annotations2 = field.getAnnotations();
- if (annotations2 != null) {
- for (JavaAnnotation javaAnnotation : annotations2) {
- addImport(javaAnnotation.getType());
- }
- }
- }
-
- public void addMethod(JavaMethod method) {
- methods.add(method);
- addImport(method.getReturnType());
-
- List<Class<? extends Throwable>> exceptions = method.getExceptions();
-
- for (Class<? extends Throwable> exception : exceptions) {
- addImport(exception);
- }
-
- List<Argument> arguments =
- method.getArguments();
-
- if (arguments != null) {
- for (Argument argument : arguments) {
- addImport(argument.getType());
- }
- }
-
- List<JavaAnnotation> annotations2 = method.getAnnotations();
- if (annotations2 != null) {
- for (JavaAnnotation javaAnnotation : annotations2) {
- addImport(javaAnnotation.getType());
- }
- }
-
- MethodBody methodBody = method.getMethodBody();
- if (methodBody != null) {
- Set<Class<?>> usedClasses = methodBody.getUsedClasses();
- for (Class<?> class1 : usedClasses) {
- addImport(class1);
- }
- }
-
- }
-
- public JavaPackage getPakg() {
- return pakg;
- }
+ public JavaClass(String shortName, JavaPackage pakg) {
+ super(shortName);
+ this.pakg = pakg;
+ }
- public JavaClass getSuperClass() {
- return superClass;
- }
-
- public void setSuperClass(JavaClass superClass) {
- this.superClass = superClass;
- addImport(superClass.getFullName());
- }
-
- public void setPackage(JavaPackage s) {
- pakg = s;
- }
- public JavaPackage getPackage() {
- return pakg;
- }
-
- public List<JavaField> getFields() {
- return fields;
- }
- public List<JavaMethod> getMethods() {
- return methods;
- }
- public Set<JavaImport> getImports() {
- return imports;
- }
-
- public String getFullName() {
- StringBuilder fullName = new StringBuilder();
- fullName.append(getPackage().getName());
- if (fullName.length() != 0) {
- fullName.append('.');
- fullName.append(getName());
- }
-
- return fullName.toString();
- }
-
- //FIXME: remodel this method so that it imports set is aligned when rendering
- private boolean shouldAddToImports(Class<?> clas) {
-
- boolean result = false;
+ public JavaClass(String shortName, JavaPackage pakg, Class<?> superClass) {
+ this(shortName, pakg);
+ setSuperClass(new JavaClass(superClass));
+ }
- if (clas != null) {
- Package p = clas.getPackage();
- JavaPackage jp = getPackage();
+ public void addImport(String name) {
+ imports.add(new RuntimeImport(name));
+ }
- if (!(clas.isPrimitive() || p == null)) {
- String importPackageName = p.getName();
- if (importPackageName != null && importPackageName.length() != 0) {
+ public void addImport(Class<?> claz) {
+ if (shouldAddToImports(claz)) {
+ imports.add(new ClassImport(claz));
+ }
+ }
- result = !(importPackageName.equals("java.lang") || (jp != null &&
importPackageName.equals(jp.getName())));
- }
- }
- }
+ @Override
+ public void addAnnotation(JavaAnnotation annotation) {
+ super.addAnnotation(annotation);
+ addImport(annotation.getType());
+ }
- return result;
- }
+ public void addField(JavaField field) {
+ fields.add(field);
+ addImport(field.getType());
+ List<JavaAnnotation> annotations2 = field.getAnnotations();
+
+ if (annotations2 != null) {
+ for (JavaAnnotation javaAnnotation : annotations2) {
+ addImport(javaAnnotation.getType());
+ }
+ }
+ }
+
+ public void addMethod(JavaMethod method) {
+ methods.add(method);
+ addImport(method.getReturnType());
+
+ List<Class<? extends Throwable>> exceptions =
method.getExceptions();
+
+ for (Class<? extends Throwable> exception : exceptions) {
+ addImport(exception);
+ }
+
+ List<Argument> arguments = method.getArguments();
+
+ if (arguments != null) {
+ for (Argument argument : arguments) {
+ addImport(argument.getType());
+ }
+ }
+
+ List<JavaAnnotation> annotations2 = method.getAnnotations();
+
+ if (annotations2 != null) {
+ for (JavaAnnotation javaAnnotation : annotations2) {
+ addImport(javaAnnotation.getType());
+ }
+ }
+
+ MethodBody methodBody = method.getMethodBody();
+
+ if (methodBody != null) {
+ Set<Class<?>> usedClasses = methodBody.getUsedClasses();
+
+ for (Class<?> class1 : usedClasses) {
+ addImport(class1);
+ }
+ }
+ }
+
+ public JavaPackage getPakg() {
+ return pakg;
+ }
+
+ public JavaClass getSuperClass() {
+ return superClass;
+ }
+
+ public void setSuperClass(JavaClass superClass) {
+ this.superClass = superClass;
+ addImport(superClass.getFullName());
+ }
+
+ public void setPackage(JavaPackage s) {
+ pakg = s;
+ }
+
+ public JavaPackage getPackage() {
+ return pakg;
+ }
+
+ public List<JavaField> getFields() {
+ return fields;
+ }
+
+ public List<JavaMethod> getMethods() {
+ return methods;
+ }
+
+ public Set<JavaImport> getImports() {
+ return imports;
+ }
+
+ public String getFullName() {
+ StringBuilder fullName = new StringBuilder();
+
+ fullName.append(getPackage().getName());
+
+ if (fullName.length() != 0) {
+ fullName.append('.');
+ fullName.append(getName());
+ }
+
+ return fullName.toString();
+ }
+
+ // FIXME: remodel this method so that it imports set is aligned when rendering
+ private boolean shouldAddToImports(Class<?> clas) {
+ boolean result = false;
+
+ if (clas != null) {
+ Package p = clas.getPackage();
+ JavaPackage jp = getPackage();
+
+ if (!(clas.isPrimitive() || p == null)) {
+ String importPackageName = p.getName();
+
+ if (importPackageName != null && importPackageName.length() != 0)
{
+ result = !(importPackageName.equals("java.lang")
+ || (jp != null &&
importPackageName.equals(jp.getName())));
+ }
+ }
+ }
+
+ return result;
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaComment.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaComment.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaComment.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
/**
@@ -27,21 +29,20 @@
*
*/
public class JavaComment {
- private String value;
+ private String value;
- public String getValue() {
- return value;
- }
+ public JavaComment() {}
- public void setValue(String value) {
- this.value = value;
- }
+ public JavaComment(String value) {
+ super();
+ this.value = value;
+ }
- public JavaComment(String value) {
- super();
- this.value = value;
- }
-
- public JavaComment() {
- }
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaConstructor.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaConstructor.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaConstructor.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,17 +19,17 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
-
/**
* Constructor method
* @author Maksim Kaszynski
*
*/
public class JavaConstructor extends JavaMethod {
-
- public JavaConstructor(JavaClass javaClass, Argument ... arguments) {
- super(javaClass.getName(), null, arguments);
- }
+ public JavaConstructor(JavaClass javaClass, Argument... arguments) {
+ super(javaClass.getName(), null, arguments);
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaField.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaField.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaField.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
/**
@@ -26,38 +28,29 @@
* @author Maksim Kaszynski
*
*/
-public class JavaField extends JavaLanguageElement{
+public class JavaField extends JavaLanguageElement {
+ private Class<?> type;
+ private Object value;
- private Class <?> type;
- private Object value;
-
- public JavaField(Class<?> type, String name) {
- this(type, name, null);
- }
+ public JavaField(Class<?> type, String name) {
+ this(type, name, null);
+ }
-
-
- public JavaField(Class<?> type, String name, Object value) {
- super(name);
- this.type = type;
- this.value = value;
- }
+ public JavaField(Class<?> type, String name, Object value) {
+ super(name);
+ this.type = type;
+ this.value = value;
+ }
+ public Class<?> getType() {
+ return type;
+ }
+ public Object getValue() {
+ return value;
+ }
- public Class<?> getType() {
- return type;
- }
-
-
-
- public Object getValue() {
- return value;
- }
-
-
-
- public void setValue(Object value) {
- this.value = value;
- }
+ public void setValue(Object value) {
+ this.value = value;
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaImport.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaImport.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaImport.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
/**
@@ -26,5 +28,5 @@
*
*/
public interface JavaImport {
- public String getName();
+ public String getName();
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaLanguageElement.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaLanguageElement.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaLanguageElement.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,65 +19,68 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+
/**
- *
+ *
* @author Maksim Kaszynski
*
*/
public class JavaLanguageElement {
+ private Set<JavaModifier> modifiers = new HashSet<JavaModifier>();
+ private List<JavaComment> comments = new ArrayList<JavaComment>();
+ private List<JavaAnnotation> annotations = new
ArrayList<JavaAnnotation>();
+ private String name;
- private Set<JavaModifier> modifiers = new HashSet<JavaModifier>();
- private List<JavaAnnotation> annotations = new ArrayList<JavaAnnotation>();
- private List<JavaComment> comments = new ArrayList<JavaComment>();
- private String name;
+ public JavaLanguageElement() {
+ super();
+ }
- public JavaLanguageElement() {
- super();
- }
-
- public JavaLanguageElement(String name) {
- super();
- this.name = name;
- }
+ public JavaLanguageElement(String name) {
+ super();
+ this.name = name;
+ }
- public Set<JavaModifier> getModifiers() {
- return modifiers;
- }
+ public Set<JavaModifier> getModifiers() {
+ return modifiers;
+ }
- public List<JavaAnnotation> getAnnotations() {
- return annotations;
- }
+ public List<JavaAnnotation> getAnnotations() {
+ return annotations;
+ }
- public List<JavaComment> getComments() {
- return comments;
- }
+ public List<JavaComment> getComments() {
+ return comments;
+ }
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public void addModifier(JavaModifier modifier) {
- modifiers.add(modifier);
- }
-
- public void addAnnotation(JavaAnnotation annotation) {
- annotations.add(annotation);
- }
- public void addAnnotation(Class<?> annotation, String ... arguments) {
- annotations.add(new JavaAnnotation(annotation, arguments));
- }
- public void addAnnotation(Class<?> annotation) {
- annotations.add(new JavaAnnotation(annotation));
- }
+ public String getName() {
+ return name;
+ }
-}
\ No newline at end of file
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void addModifier(JavaModifier modifier) {
+ modifiers.add(modifier);
+ }
+
+ public void addAnnotation(JavaAnnotation annotation) {
+ annotations.add(annotation);
+ }
+
+ public void addAnnotation(Class<?> annotation, String... arguments) {
+ annotations.add(new JavaAnnotation(annotation, arguments));
+ }
+
+ public void addAnnotation(Class<?> annotation) {
+ annotations.add(new JavaAnnotation(annotation));
+ }
+}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaMethod.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaMethod.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaMethod.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
import java.util.ArrayList;
@@ -30,54 +32,52 @@
*
*/
public class JavaMethod extends JavaLanguageElement {
-
- private Class<?> returnType;
-
- private MethodBody methodBody;
-
- private List <Argument> arguments = new ArrayList<Argument>();
- private List<Class<? extends Throwable>> exceptions = new
ArrayList<Class<? extends Throwable>>();
-
- public List<Class<? extends Throwable>> getExceptions() {
- return exceptions;
- }
+ private List<Argument> arguments = new ArrayList<Argument>();
+ private List<Class<? extends Throwable>> exceptions = new
ArrayList<Class<? extends Throwable>>();
+ private MethodBody methodBody;
+ private Class<?> returnType;
- public void setExceptions(List<Class<? extends Throwable>> exceptions) {
- this.exceptions = exceptions;
- }
+ public JavaMethod(String name) {
+ super(name);
+ this.returnType = Void.TYPE;
+ }
- public JavaMethod(String name) {
- super(name);
- this.returnType = Void.TYPE;
- }
+ public JavaMethod(String name, Argument... arguments) {
+ this(name);
+ this.arguments = Arrays.asList(arguments);
+ }
- public JavaMethod(String name, Argument ... arguments) {
- this(name);
- this.arguments = Arrays.asList(arguments);
- }
+ public JavaMethod(String name, Class<?> returnType, Argument... arguments) {
+ this(name);
+ this.returnType = returnType;
+ this.arguments = Arrays.asList(arguments);
+ }
- public JavaMethod(String name, Class<?> returnType, Argument ... arguments) {
- this(name);
- this.returnType = returnType;
- this.arguments = Arrays.asList(arguments);
- }
- public List<Argument> getArguments() {
- return arguments;
- }
-
- public MethodBody getMethodBody() {
- return methodBody;
- }
+ public List<Class<? extends Throwable>> getExceptions() {
+ return exceptions;
+ }
+ public void setExceptions(List<Class<? extends Throwable>> exceptions) {
+ this.exceptions = exceptions;
+ }
- public Class<?> getReturnType() {
- return returnType;
- }
+ public List<Argument> getArguments() {
+ return arguments;
+ }
- public void setMethodBody(MethodBody methodBody) {
- this.methodBody = methodBody;
- if (methodBody != null) {
- methodBody.setMethod(this);
- }
- }
+ public MethodBody getMethodBody() {
+ return methodBody;
+ }
+
+ public Class<?> getReturnType() {
+ return returnType;
+ }
+
+ public void setMethodBody(MethodBody methodBody) {
+ this.methodBody = methodBody;
+
+ if (methodBody != null) {
+ methodBody.setMethod(this);
+ }
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaModifier.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaModifier.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaModifier.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
/**
@@ -26,21 +28,16 @@
*
*/
public enum JavaModifier {
- PRIVATE ,
- DEFAULT {
- public String toString() {
- return "";
- }
- },
- PROTECTED,
- PUBLIC,
- STATIC,
- FINAL,
- TRANSIENT
- ;
+ PRIVATE, DEFAULT {
+ @Override
+ public String toString() {
+ return "";
+ }
+ },
+ PROTECTED, PUBLIC, STATIC, FINAL, TRANSIENT;
- public String toString() {
- return super.toString().toLowerCase();
- }
-
+ @Override
+ public String toString() {
+ return super.toString().toLowerCase();
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaPackage.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaPackage.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaPackage.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
/**
@@ -26,20 +28,18 @@
*
*/
public class JavaPackage {
- private String name;
+ private String name;
- public String getName() {
- return name;
- }
+ public JavaPackage(Package pkg) {
+ this(pkg.getName());
+ }
- public JavaPackage(String name) {
- super();
- this.name = name;
- }
+ public JavaPackage(String name) {
+ super();
+ this.name = name;
+ }
- public JavaPackage(Package pkg) {
- this(pkg.getName());
- }
-
-
+ public String getName() {
+ return name;
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaPrimitive.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaPrimitive.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaPrimitive.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
import java.util.HashMap;
@@ -28,52 +30,53 @@
* @author Maksim Kaszynski
*
*/
-public class JavaPrimitive {
-
- @SuppressWarnings("serial")
- private static Map<String, Class<?>> types =
- new HashMap<String, Class<?>> () {{
- put("boolean", boolean.class);
- put("byte", byte.class);
- put("short", short.class);
- put("char", char.class);
- put("int", int.class);
- put("long", long.class);
- put("float", float.class);
- put("double", double.class);
- }};
-
- @SuppressWarnings("serial")
- private static Map<String, Class<?>> wrappers =
- new HashMap<String, Class<?>>() {
- {
- put(boolean.class.getName(), Boolean.class);
- put(byte.class.getName(), Byte.class);
- put(short.class.getName(), Short.class);
- put(char.class.getName(), Character.class);
- put(int.class.getName(), Integer.class);
- put(float.class.getName(), Float.class);
- put(long.class.getName(), Long.class);
- put(double.class.getName(), Double.class);
- }};
-
- public static final Class<?> forName(String name) throws ClassNotFoundException{
- Class<?> class1 = types.get(name);
- if (class1 == null) {
- throw new ClassNotFoundException(name);
- }
- return class1;
- }
-
- public static final Class<?> wrapperType(Class<?> primitive) {
- if (!primitive.isPrimitive()) {
- throw new IllegalArgumentException("Class " + primitive + " is not
primitive.");
- }
-
- return wrappers.get(primitive.getName());
- }
-
- public static final boolean isPrimitive(String typeName) {
- return types.containsKey(typeName);
- }
+public final class JavaPrimitive {
+ private static final Map<String, Class<?>> TYPES = new HashMap<String,
Class<?>>() {
+ {
+ put("boolean", boolean.class);
+ put("byte", byte.class);
+ put("short", short.class);
+ put("char", char.class);
+ put("int", int.class);
+ put("long", long.class);
+ put("float", float.class);
+ put("double", double.class);
+ }
+ };
+ private static final Map<String, Class<?>> WRAPPERS = new
HashMap<String, Class<?>>() {
+ {
+ put(boolean.class.getName(), Boolean.class);
+ put(byte.class.getName(), Byte.class);
+ put(short.class.getName(), Short.class);
+ put(char.class.getName(), Character.class);
+ put(int.class.getName(), Integer.class);
+ put(float.class.getName(), Float.class);
+ put(long.class.getName(), Long.class);
+ put(double.class.getName(), Double.class);
+ }
+ };
+
+ private JavaPrimitive() {}
+
+ public static Class<?> forName(String name) throws ClassNotFoundException {
+ Class<?> class1 = TYPES.get(name);
+
+ if (class1 == null) {
+ throw new ClassNotFoundException(name);
+ }
+
+ return class1;
+ }
+
+ public static Class<?> wrapperType(Class<?> primitive) {
+ if (!primitive.isPrimitive()) {
+ throw new IllegalArgumentException("Class " + primitive + " is
not primitive.");
+ }
+
+ return WRAPPERS.get(primitive.getName());
+ }
+
+ public static boolean isPrimitive(String typeName) {
+ return TYPES.containsKey(typeName);
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/MethodBody.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/MethodBody.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/MethodBody.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
import java.util.ArrayList;
@@ -31,49 +33,46 @@
*
*/
public class MethodBody implements MethodBodyStatementsContainer {
-
- private JavaMethod method;
-
- private Set<Class<?>> usedClasses = new HashSet<Class<?>>();
-
- private List<MethodBodyStatement> body = new
ArrayList<MethodBodyStatement>();
-
- public MethodBody() {
- }
- public MethodBody(JavaMethod method) {
- super();
- this.method = method;
- }
+ private Set<Class<?>> usedClasses = new HashSet<Class<?>>();
+ private List<MethodBodyStatement> body = new
ArrayList<MethodBodyStatement>();
+ private JavaMethod method;
- protected JavaMethod getMethod() {
- return method;
- }
+ public MethodBody() {}
- protected void setMethod(JavaMethod method) {
- this.method = method;
- }
+ public MethodBody(JavaMethod method) {
+ super();
+ this.method = method;
+ }
- public String toCode() {
- StringBuilder builder = new StringBuilder();
-
- for (MethodBodyStatement statement : body) {
- statement.appendTo(builder);
- }
-
- return builder.toString();
- }
+ protected JavaMethod getMethod() {
+ return method;
+ }
- public void addToBody(MethodBodyStatement... argStatements) {
- for (MethodBodyStatement methodBodyStatement : argStatements) {
- body.add(methodBodyStatement);
- }
- }
-
- public void addType(Class<?> clazz) {
- usedClasses.add(clazz);
- }
-
- public Set<Class<?>> getUsedClasses() {
- return usedClasses;
- }
+ protected void setMethod(JavaMethod method) {
+ this.method = method;
+ }
+
+ public String toCode() {
+ StringBuilder builder = new StringBuilder();
+
+ for (MethodBodyStatement statement : body) {
+ statement.appendTo(builder);
+ }
+
+ return builder.toString();
+ }
+
+ public void addToBody(MethodBodyStatement... argStatements) {
+ for (MethodBodyStatement methodBodyStatement : argStatements) {
+ body.add(methodBodyStatement);
+ }
+ }
+
+ public void addType(Class<?> clazz) {
+ usedClasses.add(clazz);
+ }
+
+ public Set<Class<?>> getUsedClasses() {
+ return usedClasses;
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/MethodBodyStatement.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/MethodBodyStatement.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/MethodBodyStatement.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
import java.util.ArrayList;
@@ -26,53 +28,50 @@
/**
* @author Nick Belaevski
- *
+ *
*/
public class MethodBodyStatement implements MethodBodyStatementsContainer {
+ private String end = null;
+ private String start = null;
+ private List<MethodBodyStatement> statements = new
ArrayList<MethodBodyStatement>();
- private List<MethodBodyStatement> statements = new
ArrayList<MethodBodyStatement>();
+ public MethodBodyStatement() {
+ this(null);
+ }
- private String start = null;
-
- private String end = null;
+ public MethodBodyStatement(String expression) {
+ this(expression, null);
+ }
- public MethodBodyStatement() {
- this(null);
- }
+ public MethodBodyStatement(String start, String end) {
+ super();
+ this.start = start;
+ this.end = end;
+ }
- public MethodBodyStatement(String expression) {
- this(expression, null);
- }
-
- public MethodBodyStatement(String start, String end) {
- super();
- this.start = start;
- this.end = end;
- }
+ /**
+ * @param builder
+ */
+ public void appendTo(StringBuilder builder) {
+ if (start != null) {
+ builder.append(start);
+ builder.append('\n');
+ }
- /**
- * @param builder
- */
- public void appendTo(StringBuilder builder) {
- if (start != null) {
- builder.append(start);
- builder.append('\n');
- }
-
- for (MethodBodyStatement statement : statements) {
- statement.appendTo(builder);
- builder.append('\n');
- }
+ for (MethodBodyStatement statement : statements) {
+ statement.appendTo(builder);
+ builder.append('\n');
+ }
- if (end != null) {
- builder.append(end);
- builder.append('\n');
- }
- }
+ if (end != null) {
+ builder.append(end);
+ builder.append('\n');
+ }
+ }
- public void addToBody(MethodBodyStatement... argStatements) {
- for (MethodBodyStatement methodBodyStatement : argStatements) {
- statements.add(methodBodyStatement);
- }
- }
+ public void addToBody(MethodBodyStatement... argStatements) {
+ for (MethodBodyStatement methodBodyStatement : argStatements) {
+ statements.add(methodBodyStatement);
+ }
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/MethodBodyStatementsContainer.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/MethodBodyStatementsContainer.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/MethodBodyStatementsContainer.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,13 +19,14 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
/**
* @author Nick Belaevski
- *
+ *
*/
public interface MethodBodyStatementsContainer {
-
- public void addToBody(MethodBodyStatement... s);
+ public void addToBody(MethodBodyStatement... s);
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/RuntimeImport.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/RuntimeImport.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/RuntimeImport.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.model;
/**
@@ -27,17 +29,14 @@
*
*/
public class RuntimeImport implements JavaImport {
+ private String name;
- private String name;
-
- public RuntimeImport(String name) {
- super();
- this.name = name;
- }
+ public RuntimeImport(String name) {
+ super();
+ this.name = name;
+ }
-
- public String getName() {
- return name;
- }
-
+ public String getName() {
+ return name;
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/render/JavaClassRenderer.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/render/JavaClassRenderer.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/render/JavaClassRenderer.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,133 +19,70 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-package org.richfaces.builder.render;
-import java.io.PrintWriter;
-import java.util.List;
-import java.util.Set;
-import javax.faces.component.UIComponentBase;
+package org.richfaces.builder.render;
-import org.richfaces.builder.model.Argument;
import org.richfaces.builder.model.JavaClass;
import org.richfaces.builder.model.JavaField;
import org.richfaces.builder.model.JavaImport;
import org.richfaces.builder.model.JavaMethod;
-import org.richfaces.builder.model.JavaModifier;
-import org.richfaces.builder.model.JavaPackage;
-import org.richfaces.builder.model.MethodBody;
+import java.io.PrintWriter;
+
+import java.util.List;
+import java.util.Set;
+
/**
* @author Maksim Kaszynski
*
*/
public class JavaClassRenderer extends JavaLanguageElementRenderer<JavaClass> {
-
- private JavaMethodRenderer methodRenderer = new JavaMethodRenderer();
-
- private JavaFieldRenderer fieldRenderer = new JavaFieldRenderer();
-
- public void render(JavaClass javaClass, PrintWriter out){
- out.println("package " + javaClass.getPackage().getName() + ";");
- out.println();
- Set<JavaImport> imports = javaClass.getImports();
-
- for (JavaImport impord : imports) {
- out.println("import " + impord.getName() + ";");
- }
-
- out.println();
+ private JavaMethodRenderer methodRenderer = new JavaMethodRenderer();
+ private JavaFieldRenderer fieldRenderer = new JavaFieldRenderer();
- renderAnnotations(javaClass, out);
-
- renderModifiers(javaClass, out);
- out.print("class " + javaClass.getName() );
-
- JavaClass superClass =
- javaClass.getSuperClass();
-
- if (!Object.class.getName().equals(superClass.getName())) {
- out.print(" extends " + superClass.getName() + " ");
- }
-
- out.println("{");
+ public void render(JavaClass javaClass, PrintWriter out) {
+ out.println("package " + javaClass.getPackage().getName() +
";");
+ out.println();
- out.println();
+ Set<JavaImport> imports = javaClass.getImports();
- List<JavaField> fields = javaClass.getFields();
- for (JavaField javaField : fields) {
- fieldRenderer.render(javaField, out);
- out.println();
+ for (JavaImport impord : imports) {
+ out.println("import " + impord.getName() + ";");
+ }
- }
+ out.println();
+ renderAnnotations(javaClass, out);
+ renderModifiers(javaClass, out);
+ out.print("class " + javaClass.getName());
- out.println();
+ JavaClass superClass = javaClass.getSuperClass();
-
- List<JavaMethod> methods = javaClass.getMethods();
- for (JavaMethod javaMethod : methods) {
- methodRenderer.render(javaMethod, out);
- out.println();
+ if (!Object.class.getName().equals(superClass.getName())) {
+ out.print(" extends " + superClass.getName() + " ");
+ }
- }
-
-
- out.println("}");
- out.flush();
- out.close();
- }
-
- @interface Tezt {
-
- }
-
- public static void main(String[] args) {
- JavaClass javaClass = new JavaClass("MyClass", new
JavaPackage("mypackage"));
-
- JavaField javaField = new JavaField(int.class, "count");
- javaField.setValue(0);
- javaField.getModifiers().add(JavaModifier.PRIVATE);
- javaClass.addField(javaField);
-
- JavaField field =
- new JavaField(UIComponentBase.class, "component", "null");
- field.addModifier(JavaModifier.PUBLIC);
- field.addAnnotation(Deprecated.class);
- javaClass.addField(field);
-
- javaClass.addAnnotation(Deprecated.class);
-
- JavaMethod accessor = new JavaMethod("getCount", int.class);
- accessor.setMethodBody(
- new MethodBody(accessor) {
- @Override
- public String toCode() {
- return "return count;";
- }
- }
- );
- accessor.getModifiers().add(JavaModifier.PUBLIC);
- accessor.getModifiers().add(JavaModifier.FINAL);
- javaClass.addMethod(accessor);
-
- JavaMethod mutator = new JavaMethod("setCount",
- new Argument("i", int.class));
- mutator.setMethodBody(
- new MethodBody(mutator) {
- @Override
- public String toCode() {
- return "count = i;";
- }
- }
- );
- mutator.addAnnotation(Tezt.class);
- mutator.addModifier(JavaModifier.PUBLIC);
- mutator.addModifier(JavaModifier.FINAL);
- javaClass.addMethod(mutator);
-
- PrintWriter printWriter = new PrintWriter(System.out);
- new JavaClassRenderer().render(javaClass, printWriter);
- printWriter.flush();
- }
+ out.println("{");
+ out.println();
+
+ List<JavaField> fields = javaClass.getFields();
+
+ for (JavaField javaField : fields) {
+ fieldRenderer.render(javaField, out);
+ out.println();
+ }
+
+ out.println();
+
+ List<JavaMethod> methods = javaClass.getMethods();
+
+ for (JavaMethod javaMethod : methods) {
+ methodRenderer.render(javaMethod, out);
+ out.println();
+ }
+
+ out.println("}");
+ out.flush();
+ out.close();
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/render/JavaFieldRenderer.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/render/JavaFieldRenderer.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/render/JavaFieldRenderer.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,6 +19,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.render;
import java.io.PrintWriter;
@@ -31,20 +33,22 @@
*/
public class JavaFieldRenderer extends JavaLanguageElementRenderer<JavaField> {
- /* (non-Javadoc)
- * @see
org.richfaces.builder.render.JavaLanguageElementRenderer#render(org.richfaces.builder.model.JavaLanguageElement,
java.io.PrintWriter)
- */
- @Override
- public void render(JavaField field, PrintWriter out) {
- renderComments(field, out);
- renderAnnotations(field, out);
- renderModifiers(field, out);
- out.print(" " + field.getType().getSimpleName());
- out.print(" " + field.getName());
- if (field.getValue() != null) {
- out.print(" = " + field.getValue());
- }
- out.println(";");
- }
+ /*
+ * (non-Javadoc)
+ * @see
org.richfaces.builder.render.JavaLanguageElementRenderer#render(org.richfaces.builder.model.JavaLanguageElement,
java.io.PrintWriter)
+ */
+ @Override
+ public void render(JavaField field, PrintWriter out) {
+ renderComments(field, out);
+ renderAnnotations(field, out);
+ renderModifiers(field, out);
+ out.print(" " + field.getType().getSimpleName());
+ out.print(" " + field.getName());
+ if (field.getValue() != null) {
+ out.print(" = " + field.getValue());
+ }
+
+ out.println(";");
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/render/JavaLanguageElementRenderer.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/render/JavaLanguageElementRenderer.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/render/JavaLanguageElementRenderer.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -18,9 +18,13 @@
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
+
package org.richfaces.builder.render;
import java.io.PrintWriter;
+
import java.util.Iterator;
import java.util.List;
import java.util.Set;
@@ -29,58 +33,66 @@
import org.richfaces.builder.model.JavaComment;
import org.richfaces.builder.model.JavaLanguageElement;
import org.richfaces.builder.model.JavaModifier;
+
/**
- *
+ *
* @author Maksim Kaszynski
*
* @param <T>
*/
public abstract class JavaLanguageElementRenderer<T extends JavaLanguageElement> {
+ public JavaLanguageElementRenderer() {
+ super();
+ }
- public JavaLanguageElementRenderer() {
- super();
- }
+ public void renderModifiers(T element, PrintWriter out) {
+ Set<JavaModifier> modifiers = element.getModifiers();
- public void renderModifiers(T element, PrintWriter out) {
- Set<JavaModifier> modifiers = element.getModifiers();
- for (JavaModifier javaModifier : modifiers) {
- out.print(javaModifier);
- out.print(" ");
- }
- }
-
- public void renderAnnotations(T element, PrintWriter out) {
- List<JavaAnnotation> annotations = element.getAnnotations();
- if (annotations != null) {
- for (JavaAnnotation javaAnnotation : annotations) {
- out.print("@" + javaAnnotation.getType().getSimpleName());
- List<String> arguments = javaAnnotation.getArguments();
- if (arguments != null && !arguments.isEmpty()) {
- out.print("(");
- for (Iterator<String> iterator = arguments.iterator(); iterator
- .hasNext();) {
- String string = iterator.next();
- out.print(string);
- if (iterator.hasNext()) {
- out.print(", ");
- }
- }
- out.print(")");
- }
- out.println();
- }
- }
-
- }
+ for (JavaModifier javaModifier : modifiers) {
+ out.print(javaModifier);
+ out.print(" ");
+ }
+ }
- public void renderComments(T element, PrintWriter out) {
- List<JavaComment> comments = element.getComments();
- for (JavaComment javaComment : comments) {
- out.println("/*");
- out.println("* " + javaComment.getValue());
- out.println("*/");
- }
- }
-
- public abstract void render(T element, PrintWriter out);
-}
\ No newline at end of file
+ public void renderAnnotations(T element, PrintWriter out) {
+ List<JavaAnnotation> annotations = element.getAnnotations();
+
+ if (annotations != null) {
+ for (JavaAnnotation javaAnnotation : annotations) {
+ out.print("@" + javaAnnotation.getType().getSimpleName());
+
+ List<String> arguments = javaAnnotation.getArguments();
+
+ if (arguments != null && !arguments.isEmpty()) {
+ out.print("(");
+
+ for (Iterator<String> iterator = arguments.iterator();
iterator.hasNext(); ) {
+ String string = iterator.next();
+
+ out.print(string);
+
+ if (iterator.hasNext()) {
+ out.print(", ");
+ }
+ }
+
+ out.print(")");
+ }
+
+ out.println();
+ }
+ }
+ }
+
+ public void renderComments(T element, PrintWriter out) {
+ List<JavaComment> comments = element.getComments();
+
+ for (JavaComment javaComment : comments) {
+ out.println("/*");
+ out.println("* " + javaComment.getValue());
+ out.println("*/");
+ }
+ }
+
+ public abstract void render(T element, PrintWriter out);
+}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/render/JavaMethodRenderer.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/render/JavaMethodRenderer.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/render/JavaMethodRenderer.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,9 +19,12 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.render;
import java.io.PrintWriter;
+
import java.util.Iterator;
import java.util.List;
@@ -34,55 +37,63 @@
*
*/
public class JavaMethodRenderer extends JavaLanguageElementRenderer<JavaMethod> {
+ @Override
+ public void render(JavaMethod javaMethod, PrintWriter out) {
+ renderComments(javaMethod, out);
+ renderAnnotations(javaMethod, out);
+ renderModifiers(javaMethod, out);
- @Override
- public void render(JavaMethod javaMethod, PrintWriter out) {
- renderComments(javaMethod, out);
- renderAnnotations(javaMethod, out);
- renderModifiers(javaMethod, out);
-
- Class<?> returnType = javaMethod.getReturnType();
-
- if (returnType != null) {
- out.print(returnType.getSimpleName() + " ");
- }
-
- out.print(javaMethod.getName());
+ Class<?> returnType = javaMethod.getReturnType();
- out.print("(");
- List<Argument> arguments = javaMethod.getArguments();
- if (arguments != null) {
- for (Iterator<Argument> iterator = arguments.iterator(); iterator.hasNext();) {
- Argument argument = iterator.next();
- out.print(argument.getType().getSimpleName());
- out.print(" ");
- out.print(argument.getName());
- if (iterator.hasNext()) {
- out.print(", ");
- }
- }
- }
- out.print(")");
- List<Class<? extends Throwable>> exceptions = javaMethod.getExceptions();
-
- if (exceptions != null && !exceptions.isEmpty()) {
- out.print(" throws ");
- for (Iterator<Class<? extends Throwable>> iterator =
exceptions.iterator(); iterator.hasNext();) {
- Class<? extends Throwable> class1 = iterator.next();
- out.print(class1.getSimpleName());
- if (iterator.hasNext()) {
- out.print(", ");
- }
-
- }
- }
-
- out.println("{");
- MethodBody methodBody = javaMethod.getMethodBody();
- if (methodBody != null){
- out.println(methodBody.toCode());
- }
- out.println("}");
+ if (returnType != null) {
+ out.print(returnType.getSimpleName() + " ");
+ }
- }
+ out.print(javaMethod.getName());
+ out.print("(");
+
+ List<Argument> arguments = javaMethod.getArguments();
+
+ if (arguments != null) {
+ for (Iterator<Argument> iterator = arguments.iterator();
iterator.hasNext(); ) {
+ Argument argument = iterator.next();
+
+ out.print(argument.getType().getSimpleName());
+ out.print(" ");
+ out.print(argument.getName());
+
+ if (iterator.hasNext()) {
+ out.print(", ");
+ }
+ }
+ }
+
+ out.print(")");
+
+ List<Class<? extends Throwable>> exceptions =
javaMethod.getExceptions();
+
+ if (exceptions != null && !exceptions.isEmpty()) {
+ out.print(" throws ");
+
+ for (Iterator<Class<? extends Throwable>> iterator =
exceptions.iterator(); iterator.hasNext(); ) {
+ Class<? extends Throwable> class1 = iterator.next();
+
+ out.print(class1.getSimpleName());
+
+ if (iterator.hasNext()) {
+ out.print(", ");
+ }
+ }
+ }
+
+ out.println("{");
+
+ MethodBody methodBody = javaMethod.getMethodBody();
+
+ if (methodBody != null) {
+ out.println(methodBody.toCode());
+ }
+
+ out.println("}");
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/BaseTagBodyConsumer.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/BaseTagBodyConsumer.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/BaseTagBodyConsumer.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -1,4 +1,5 @@
package org.richfaces.builder.templates;
+
import javax.xml.namespace.QName;
import javax.xml.stream.events.Characters;
import javax.xml.stream.events.EndElement;
@@ -29,58 +30,60 @@
/**
* @author Nick Belaevski
- *
+ *
*/
public class BaseTagBodyConsumer extends BaseTemplateConsumer {
+ protected final MethodBodyStatement statement;
- protected final MethodBodyStatement statement;
-
- public BaseTagBodyConsumer(MethodBodyStatement methodBodyStatement) {
- super();
-
- this.statement = methodBodyStatement;
- }
+ public BaseTagBodyConsumer(MethodBodyStatement methodBodyStatement) {
+ super();
+ this.statement = methodBodyStatement;
+ }
- @Override
- public void consumeEndElement(EndElement endElement) {
- QName name = endElement.getName();
-
- if (!isCdkNamespace(name)) {
- statement.addToBody(createEndElement(endElement));
- }
- }
+ @Override
+ public void consumeEndElement(EndElement endElement) {
+ QName name = endElement.getName();
- @Override
- public Consumer consumeStartElement(StartElement startElement) {
- QName name = startElement.getName();
- if (isCdkNamespace(name)) {
- if ("if".equals(name.getLocalPart())) {
- MethodBodyStatement ifStatement = createIfExpression(startElement);
-
- statement.addToBody(ifStatement);
- return new StructuralTagBodyConsumer(ifStatement);
- } else if ("choose".equals(name.getLocalPart())) {
- MethodBodyStatement whenStatement = new MethodBodyStatement();
- statement.addToBody(whenStatement);
- return new ChooseTagBodyConsumer(whenStatement);
- } else if ("call".equals(name.getLocalPart())) {
- statement.addToBody(createCallExpression(startElement));
- } else {
- throw new IllegalArgumentException();
- }
- } else {
- statement.addToBody(createStartElement(startElement));
- }
-
- return this;
- }
-
- @Override
- public void consumeCharacters(Characters characters) {
- String trimmedText = characters.getData().trim();
-
- if (trimmedText.length() != 0) {
- statement.addToBody(createWriteText(characters));
- }
- }
+ if (!isCdkNamespace(name)) {
+ statement.addToBody(createEndElement(endElement));
+ }
+ }
+
+ @Override
+ public Consumer consumeStartElement(StartElement startElement) {
+ QName name = startElement.getName();
+
+ if (isCdkNamespace(name)) {
+ if ("if".equals(name.getLocalPart())) {
+ MethodBodyStatement ifStatement = createIfExpression(startElement);
+
+ statement.addToBody(ifStatement);
+
+ return new StructuralTagBodyConsumer(ifStatement);
+ } else if ("choose".equals(name.getLocalPart())) {
+ MethodBodyStatement whenStatement = new MethodBodyStatement();
+
+ statement.addToBody(whenStatement);
+
+ return new ChooseTagBodyConsumer(whenStatement);
+ } else if ("call".equals(name.getLocalPart())) {
+ statement.addToBody(createCallExpression(startElement));
+ } else {
+ throw new IllegalArgumentException();
+ }
+ } else {
+ statement.addToBody(createStartElement(startElement));
+ }
+
+ return this;
+ }
+
+ @Override
+ public void consumeCharacters(Characters characters) {
+ String trimmedText = characters.getData().trim();
+
+ if (trimmedText.length() != 0) {
+ statement.addToBody(createWriteText(characters));
+ }
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/BaseTemplateConsumer.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/BaseTemplateConsumer.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/BaseTemplateConsumer.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -1,25 +1,27 @@
package org.richfaces.builder.templates;
+
+import org.richfaces.builder.model.MethodBodyStatement;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.events.Attribute;
+import javax.xml.stream.events.Characters;
+import javax.xml.stream.events.EndElement;
+import javax.xml.stream.events.StartElement;
+
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
+
import java.text.MessageFormat;
-import java.util.HashSet;
+
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Set;
-import java.util.Map.Entry;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import javax.xml.namespace.QName;
-import javax.xml.stream.events.Attribute;
-import javax.xml.stream.events.Characters;
-import javax.xml.stream.events.EndElement;
-import javax.xml.stream.events.StartElement;
-
-import org.richfaces.builder.model.MethodBodyStatement;
-
/**
* License Agreement.
*
@@ -43,246 +45,277 @@
/**
* @author Nick Belaevski
- *
+ *
*/
public class BaseTemplateConsumer implements Consumer {
+ private static final String CDK_NAMESPACE = "http://richfaces.org/cdk";
+ private static final String XHTML_NAMESPACE =
"http://richfaces.org/xhtml-el";
+ private static final Pattern EL_EXPRESSION =
Pattern.compile("#\\{([^\\}]+)\\}");
+ private static final Pattern COMPONENT_ATTRIBUTES_EXPRESSION =
+
Pattern.compile("^component\\.attributes\\[(?:'|\")?([^'\"]+)(?:'|\")?\\]$");
+ private static final Map<String, Set<String>> ELEMENTS_ATTRIBUTES;
- private static final String XHTML_NAMESPACE =
"http://richfaces.org/xhtml-el";
+ static {
+ InputStream serializedAttributesStream =
BaseTemplateConsumer.class.getResourceAsStream("/attributes.ser");
- private static final String CDK_NAMESPACE = "http://richfaces.org/cdk";
+ try {
- private static final Map<String, Set<String>> elementsAttributes;
-
- private static final Pattern EL_EXPRESSION =
Pattern.compile("#\\{([^\\}]+)\\}");
-
- private static final Pattern COMPONENT_ATTRIBUTES_EXPRESSION =
Pattern.compile("^component\\.attributes\\[(?:'|\")?([^'\"]+)(?:'|\")?\\]$");
+ // TODO read default attributes values
+ // TODO detect URI attributes
+ ObjectInputStream ois = new ObjectInputStream(serializedAttributesStream);
- static {
- InputStream serializedAttributesStream =
BaseTemplateConsumer.class.getResourceAsStream("/attributes.ser");
- try {
- //TODO read default attributes values
- //TODO detect URI attributes
- ObjectInputStream ois = new ObjectInputStream(serializedAttributesStream);
- elementsAttributes = (Map<String, Set<String>>) ois.readObject();
- } catch (Exception e) {
- throw new IllegalStateException(e.getMessage(), e);
- } finally {
- try {
- serializedAttributesStream.close();
- } catch (IOException e) {
- throw new IllegalStateException(e.getMessage(), e);
- }
- }
- }
-
- /* (non-Javadoc)
- * @see Consumer#consumeCharacters(javax.xml.stream.events.Characters)
- */
- @Override
- public void consumeCharacters(Characters characters) {
- }
+ ELEMENTS_ATTRIBUTES = (Map<String, Set<String>>)
ois.readObject();
+ } catch (Exception e) {
+ throw new IllegalStateException(e.getMessage(), e);
+ } finally {
+ try {
+ serializedAttributesStream.close();
+ } catch (IOException e) {
+ throw new IllegalStateException(e.getMessage(), e);
+ }
+ }
+ }
- /* (non-Javadoc)
- * @see Consumer#consumeEndElement(javax.xml.stream.events.EndElement)
- */
- @Override
- public void consumeEndElement(EndElement endElement) {
- }
+ /*
+ * (non-Javadoc)
+ * @see Consumer#consumeCharacters(javax.xml.stream.events.Characters)
+ */
+ @Override
+ public void consumeCharacters(Characters characters) {}
- /* (non-Javadoc)
- * @see Consumer#consumeStartElement(javax.xml.stream.events.StartElement)
- */
- @Override
- public Consumer consumeStartElement(StartElement startElement) {
- return this;
- }
+ /*
+ * (non-Javadoc)
+ * @see Consumer#consumeEndElement(javax.xml.stream.events.EndElement)
+ */
+ @Override
+ public void consumeEndElement(EndElement endElement) {}
- /* (non-Javadoc)
- * @see Consumer#enter()
- */
- @Override
- public void enter() {
- }
+ /*
+ * (non-Javadoc)
+ * @see Consumer#consumeStartElement(javax.xml.stream.events.StartElement)
+ */
+ @Override
+ public Consumer consumeStartElement(StartElement startElement) {
+ return this;
+ }
- /* (non-Javadoc)
- * @see Consumer#exit()
- */
- @Override
- public void exit() {
- }
+ /*
+ * (non-Javadoc)
+ * @see Consumer#enter()
+ */
+ @Override
+ public void enter() {}
- protected boolean isDefaultNamespace(QName name) {
- return name.getNamespaceURI().length() == 0;
- }
-
- protected boolean isXhtmlNamespace(QName name) {
- return XHTML_NAMESPACE.equals(name.getNamespaceURI());
- }
+ /*
+ * (non-Javadoc)
+ * @see Consumer#exit()
+ */
+ @Override
+ public void exit() {}
- protected boolean isCdkNamespace(QName name) {
- return CDK_NAMESPACE.equals(name.getNamespaceURI());
- }
-
- private String quote(String s) {
- StringBuilder result = new StringBuilder();
- result.append('\"');
-
- char[] chars = s.toCharArray();
- for (char c : chars) {
-
- switch (c) {
- case '\n':
- result.append("\\n");
- break;
- case '\r':
- result.append("\\r");
- break;
- case '\t':
- result.append("\\t");
- break;
- case '\f':
- result.append("\\f");
- break;
- case '\b':
- result.append("\\b");
- break;
- case '\\':
- result.append("\\\\");
- break;
- case '"':
- result.append("\\\"");
- break;
- default:
- result.append(c);
- }
- }
-
- result.append('\"');
- return result.toString();
- }
-
- protected String elExpressionToJava(String elExpression) {
- if ("clientId".equalsIgnoreCase(elExpression)) {
- return "component.getClientId(context)";
- } else {
- Matcher matcher = COMPONENT_ATTRIBUTES_EXPRESSION.matcher(elExpression);
- if (matcher.matches()) {
- String componentAttributeName = matcher.group(1);
- return
MessageFormat.format("component.getAttributes().get(\"{0}\")",
componentAttributeName);
- }
- }
-
- return elExpression;
- }
-
- protected String compileEl(String elString) {
- Matcher matcher = EL_EXPRESSION.matcher(elString);
- StringBuffer buffer = new StringBuffer();
-
- int start = 0;
- int elStart;
- while (matcher.find(start)) {
- elStart = matcher.start();
-
- if (elStart != start) {
- if (buffer.length() != 0) {
- buffer.append(" + ");
- }
- buffer.append(quote(elString.substring(start, elStart)));
- }
-
- String elExpression = matcher.group(1);
- if (buffer.length() != 0) {
- buffer.append(" + ");
- }
- buffer.append(elExpressionToJava(elExpression));
-
-
- start = matcher.end();
- }
-
- if (start != elString.length()) {
- if (buffer.length() != 0) {
- buffer.append(" + ");
- }
- buffer.append(quote(elString.substring(start)));
- }
- return buffer.toString();
- }
-
- protected MethodBodyStatement createStartElement(StartElement startElement) {
- MethodBodyStatement rootStatement = new MethodBodyStatement();
- String elementName = startElement.getName().getLocalPart();
- rootStatement.addToBody(new MethodBodyStatement(
- MessageFormat.format("responseWriter.startElement(\"{0}\",
component);",
- elementName)));
-
- Map<String, String> attributes = new LinkedHashMap<String, String>();
-
- Iterator<Attribute> attributesItr = startElement.getAttributes();
- while (attributesItr.hasNext()) {
- Attribute attribute = attributesItr.next();
- QName attributeName = attribute.getName();
- String value = attribute.getValue();
-
- if (isXhtmlNamespace(attributeName) || isDefaultNamespace(attributeName)) {
- attributes.put(attributeName.getLocalPart(), value);
- } else if (isCdkNamespace(attributeName)) {
- if ("passThroughWithExclusions".equals(attributeName.getLocalPart())) {
- if (!"#none".equals(value)) {
- rootStatement.addToBody(new MethodBodyStatement(MessageFormat
- .format("getUtils().encodePassThruWithExclusions(context, component,
\"{0}\", null);", value)));
- }
- } else {
- throw new IllegalArgumentException(attributeName.toString());
- }
- } else {
- throw new IllegalArgumentException(attributeName.toString());
- }
- }
-
- for (Entry<String, String> attributeEntry : attributes.entrySet()) {
- //TODO add check for default values
- rootStatement.addToBody(new MethodBodyStatement(
- MessageFormat.format("responseWriter.writeAttribute(\"{0}\", {1},
\"{0}\");",
- attributeEntry.getKey(), compileEl(attributeEntry.getValue()))));
- }
-
- return rootStatement;
- }
+ protected boolean isDefaultNamespace(QName name) {
+ return name.getNamespaceURI().length() == 0;
+ }
- protected MethodBodyStatement createEndElement(EndElement startElement) {
- String elementName = startElement.getName().getLocalPart();
- return new
MethodBodyStatement(MessageFormat.format("responseWriter.endElement(\"{0}\");",
elementName));
- }
-
- protected MethodBodyStatement createWriteText(Characters characters) {
- return new
MethodBodyStatement(MessageFormat.format("responseWriter.writeText(convertToString({0}),
component, null);",
- compileEl(characters.getData().trim())));
- }
-
- protected MethodBodyStatement createIfExpression(StartElement element) {
- Attribute testAttribute = element.getAttributeByName(new QName("test"));
- String testExpression = compileEl(testAttribute.getValue());
- return new MethodBodyStatement(
- MessageFormat.format("if ({0}) '{'", testExpression),
"}");
- }
+ protected boolean isXhtmlNamespace(QName name) {
+ return XHTML_NAMESPACE.equals(name.getNamespaceURI());
+ }
- protected MethodBodyStatement createIfElseExpression(StartElement element) {
- Attribute testAttribute = element.getAttributeByName(new QName("test"));
- String testExpression = compileEl(testAttribute.getValue());
- return new MethodBodyStatement(
- MessageFormat.format("else if ({0}) '{'", testExpression),
"}");
- }
+ protected boolean isCdkNamespace(QName name) {
+ return CDK_NAMESPACE.equals(name.getNamespaceURI());
+ }
- protected MethodBodyStatement createGetComponentClassMethod(String componentClassName)
{
- return new MethodBodyStatement(MessageFormat.format("return {0}.class;",
componentClassName));
- }
+ private String quote(String s) {
+ StringBuilder result = new StringBuilder();
- protected MethodBodyStatement createCallExpression(StartElement startElement) {
- Attribute expressionAttribute = startElement.getAttributeByName(new
QName("expression"));
- String expressionValue = expressionAttribute.getValue();
- return new MethodBodyStatement(expressionValue);
- }
+ result.append('\"');
+ char[] chars = s.toCharArray();
+
+ for (char c : chars) {
+ switch (c) {
+ case '\n' :
+ result.append("\\n");
+
+ break;
+
+ case '\r' :
+ result.append("\\r");
+
+ break;
+
+ case '\t' :
+ result.append("\\t");
+
+ break;
+
+ case '\f' :
+ result.append("\\f");
+
+ break;
+
+ case '\b' :
+ result.append("\\b");
+
+ break;
+
+ case '\\' :
+ result.append("\\\\");
+
+ break;
+
+ case '"' :
+ result.append("\\\"");
+
+ break;
+
+ default :
+ result.append(c);
+ }
+ }
+
+ result.append('\"');
+
+ return result.toString();
+ }
+
+ protected String elExpressionToJava(String elExpression) {
+ if ("clientId".equalsIgnoreCase(elExpression)) {
+ return "component.getClientId(context)";
+ } else {
+ Matcher matcher = COMPONENT_ATTRIBUTES_EXPRESSION.matcher(elExpression);
+
+ if (matcher.matches()) {
+ String componentAttributeName = matcher.group(1);
+
+ return
MessageFormat.format("component.getAttributes().get(\"{0}\")",
componentAttributeName);
+ }
+ }
+
+ return elExpression;
+ }
+
+ protected String compileEl(String elString) {
+ Matcher matcher = EL_EXPRESSION.matcher(elString);
+ StringBuffer buffer = new StringBuffer();
+ int start = 0;
+ int elStart;
+
+ while (matcher.find(start)) {
+ elStart = matcher.start();
+
+ if (elStart != start) {
+ if (buffer.length() != 0) {
+ buffer.append(" + ");
+ }
+
+ buffer.append(quote(elString.substring(start, elStart)));
+ }
+
+ String elExpression = matcher.group(1);
+
+ if (buffer.length() != 0) {
+ buffer.append(" + ");
+ }
+
+ buffer.append(elExpressionToJava(elExpression));
+ start = matcher.end();
+ }
+
+ if (start != elString.length()) {
+ if (buffer.length() != 0) {
+ buffer.append(" + ");
+ }
+
+ buffer.append(quote(elString.substring(start)));
+ }
+
+ return buffer.toString();
+ }
+
+ protected MethodBodyStatement createStartElement(StartElement startElement) {
+ MethodBodyStatement rootStatement = new MethodBodyStatement();
+ String elementName = startElement.getName().getLocalPart();
+
+ rootStatement.addToBody(
+ new MethodBodyStatement(
+ MessageFormat.format("responseWriter.startElement(\"{0}\",
component);", elementName)));
+
+ Map<String, String> attributes = new LinkedHashMap<String,
String>();
+ Iterator<Attribute> attributesItr = startElement.getAttributes();
+
+ while (attributesItr.hasNext()) {
+ Attribute attribute = attributesItr.next();
+ QName attributeName = attribute.getName();
+ String value = attribute.getValue();
+
+ if (isXhtmlNamespace(attributeName) || isDefaultNamespace(attributeName)) {
+ attributes.put(attributeName.getLocalPart(), value);
+ } else if (isCdkNamespace(attributeName)) {
+ if
("passThroughWithExclusions".equals(attributeName.getLocalPart())) {
+ if (!"#none".equals(value)) {
+ rootStatement.addToBody(
+ new MethodBodyStatement(
+ MessageFormat.format(
+
"getUtils().encodePassThruWithExclusions(context, component, \"{0}\",
null);",
+ value)));
+ }
+ } else {
+ throw new IllegalArgumentException(attributeName.toString());
+ }
+ } else {
+ throw new IllegalArgumentException(attributeName.toString());
+ }
+ }
+
+ for (Entry<String, String> attributeEntry : attributes.entrySet()) {
+
+ // TODO add check for default values
+ rootStatement.addToBody(
+ new MethodBodyStatement(
+ MessageFormat.format(
+ "responseWriter.writeAttribute(\"{0}\", {1},
\"{0}\");", attributeEntry.getKey(),
+ compileEl(attributeEntry.getValue()))));
+ }
+
+ return rootStatement;
+ }
+
+ protected MethodBodyStatement createEndElement(EndElement startElement) {
+ String elementName = startElement.getName().getLocalPart();
+
+ return new
MethodBodyStatement(MessageFormat.format("responseWriter.endElement(\"{0}\");",
elementName));
+ }
+
+ protected MethodBodyStatement createWriteText(Characters characters) {
+ return new MethodBodyStatement(
+ MessageFormat.format(
+ "responseWriter.writeText(convertToString({0}), component,
null);",
+ compileEl(characters.getData().trim())));
+ }
+
+ protected MethodBodyStatement createIfExpression(StartElement element) {
+ Attribute testAttribute = element.getAttributeByName(new
QName("test"));
+ String testExpression = compileEl(testAttribute.getValue());
+
+ return new MethodBodyStatement(MessageFormat.format("if ({0})
'{'", testExpression), "}");
+ }
+
+ protected MethodBodyStatement createIfElseExpression(StartElement element) {
+ Attribute testAttribute = element.getAttributeByName(new
QName("test"));
+ String testExpression = compileEl(testAttribute.getValue());
+
+ return new MethodBodyStatement(MessageFormat.format("else if ({0})
'{'", testExpression), "}");
+ }
+
+ protected MethodBodyStatement createGetComponentClassMethod(String
componentClassName) {
+ return new MethodBodyStatement(MessageFormat.format("return
{0}.class;", componentClassName));
+ }
+
+ protected MethodBodyStatement createCallExpression(StartElement startElement) {
+ Attribute expressionAttribute = startElement.getAttributeByName(new
QName("expression"));
+ String expressionValue = expressionAttribute.getValue();
+
+ return new MethodBodyStatement(expressionValue);
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/ChooseTagBodyConsumer.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/ChooseTagBodyConsumer.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/ChooseTagBodyConsumer.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -1,4 +1,5 @@
package org.richfaces.builder.templates;
+
import java.util.ArrayList;
import java.util.List;
@@ -31,57 +32,59 @@
/**
* @author Nick Belaevski
- *
+ *
*/
public class ChooseTagBodyConsumer extends BaseTagBodyConsumer {
+ private List<MethodBodyStatement> statements = new
ArrayList<MethodBodyStatement>();
- private List<MethodBodyStatement> statements = new
ArrayList<MethodBodyStatement>();
-
- public ChooseTagBodyConsumer(MethodBodyStatement methodBodyStatement) {
- super(methodBodyStatement);
- }
+ public ChooseTagBodyConsumer(MethodBodyStatement methodBodyStatement) {
+ super(methodBodyStatement);
+ }
- /* (non-Javadoc)
- * @see BaseTagBodyConsumer#consumeStartElement(javax.xml.stream.events.StartElement)
- */
- @Override
- public Consumer consumeStartElement(StartElement startElement) {
- QName name = startElement.getName();
- if (isCdkNamespace(name)) {
- MethodBodyStatement bodyStatement;
-
- if (statements.isEmpty()) {
- if ("when".equals(name.getLocalPart())) {
- bodyStatement = createIfExpression(startElement);
- } else {
- throw new IllegalArgumentException();
- }
- } else {
- if ("when".equals(name.getLocalPart())) {
- bodyStatement = createIfElseExpression(startElement);
- } else if ("otherwise".equals(name.getLocalPart())) {
- bodyStatement = new MethodBodyStatement("else {", "}");
- } else {
- throw new IllegalArgumentException();
- }
- }
-
- statement.addToBody(bodyStatement);
-
- statements.add(bodyStatement);
- return new StructuralTagBodyConsumer(bodyStatement);
- } else {
- throw new IllegalArgumentException();
- }
- }
-
- /* (non-Javadoc)
- * @see
org.richfaces.builder.templates.BaseTagBodyConsumer#consumeCharacters(javax.xml.stream.events.Characters)
- */
- @Override
- public void consumeCharacters(Characters characters) {
- if (characters.getData().trim().length() != 0) {
- throw new IllegalArgumentException();
- }
- }
+ /*
+ * (non-Javadoc)
+ * @see
BaseTagBodyConsumer#consumeStartElement(javax.xml.stream.events.StartElement)
+ */
+ @Override
+ public Consumer consumeStartElement(StartElement startElement) {
+ QName name = startElement.getName();
+
+ if (isCdkNamespace(name)) {
+ MethodBodyStatement bodyStatement;
+
+ if (statements.isEmpty()) {
+ if ("when".equals(name.getLocalPart())) {
+ bodyStatement = createIfExpression(startElement);
+ } else {
+ throw new IllegalArgumentException();
+ }
+ } else {
+ if ("when".equals(name.getLocalPart())) {
+ bodyStatement = createIfElseExpression(startElement);
+ } else if ("otherwise".equals(name.getLocalPart())) {
+ bodyStatement = new MethodBodyStatement("else {",
"}");
+ } else {
+ throw new IllegalArgumentException();
+ }
+ }
+
+ statement.addToBody(bodyStatement);
+ statements.add(bodyStatement);
+
+ return new StructuralTagBodyConsumer(bodyStatement);
+ } else {
+ throw new IllegalArgumentException();
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see
org.richfaces.builder.templates.BaseTagBodyConsumer#consumeCharacters(javax.xml.stream.events.Characters)
+ */
+ @Override
+ public void consumeCharacters(Characters characters) {
+ if (characters.getData().trim().length() != 0) {
+ throw new IllegalArgumentException();
+ }
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/Consumer.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/Consumer.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/Consumer.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -18,6 +18,9 @@
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
+
package org.richfaces.builder.templates;
import javax.xml.stream.events.Characters;
@@ -26,18 +29,16 @@
/**
* @author Nick Belaevski
- *
+ *
*/
public interface Consumer {
+ public void enter();
- public void enter();
+ public void exit();
- public void exit();
+ public Consumer consumeStartElement(StartElement startElement);
- public Consumer consumeStartElement(StartElement startElement);
+ public void consumeEndElement(EndElement endElement);
- public void consumeEndElement(EndElement endElement);
-
- public void consumeCharacters(Characters characters);
-
+ public void consumeCharacters(Characters characters);
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererClassGenerator.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererClassGenerator.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererClassGenerator.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -21,6 +21,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.templates;
import java.io.File;
@@ -40,54 +42,47 @@
/**
* <p class="changed_added_4_0">
* </p>
- *
+ *
* @author asmirnov(a)exadel.com
- *
+ *
*/
public class RendererClassGenerator implements CdkWriter {
+ private CdkContext context;
- private CdkContext context;
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.richfaces.cdk.CdkWriter#init(org.richfaces.cdk.CdkContext)
+ */
+ @Override
+ public void init(CdkContext context) throws CdkException {
+ this.context = context;
+ }
- /*
- * (non-Javadoc)
- *
- * @see org.richfaces.cdk.CdkWriter#init(org.richfaces.cdk.CdkContext)
- */
- @Override
- public void init(CdkContext context) throws CdkException {
- this.context = context;
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.richfaces.cdk.CdkWriter#render(org.richfaces.cdk.model.ComponentLibrary
+ * )
+ */
+ @Override
+ public void render(ComponentLibrary library) throws CdkException {
+ for (RenderKit renderKit : library.getRenderKits()) {
+ for (Renderer renderer : renderKit.getRenderers()) {
+ JavaClass javaClass = renderer.getTemplate();
+ String fullName = javaClass.getFullName();
+ File outFile =
context.createOutputFile(StandardOutputs.RENDERER_CLASSES,
+ fullName.replace('.', '/') +
".java", library.lastModified());
- /*
- * (non-Javadoc)
- *
- * @see
- * org.richfaces.cdk.CdkWriter#render(org.richfaces.cdk.model.ComponentLibrary
- * )
- */
- @Override
- public void render(ComponentLibrary library) throws CdkException {
- for (RenderKit renderKit : library.getRenderKits()) {
- for (Renderer renderer : renderKit.getRenderers()) {
- JavaClass javaClass = renderer.getTemplate();
- String fullName = javaClass.getFullName();
-
- File outFile = context.createOutputFile(
- StandardOutputs.RENDERER_CLASSES, fullName.replace('.',
- '/')
- + ".java", library.lastModified());
- if (null != outFile) {
- try {
- new JavaClassRenderer().render(javaClass,
- new PrintWriter(outFile));
- } catch (FileNotFoundException e) {
- throw new CdkException(e);
- }
-
- }
- }
- }
-
- }
-
+ if (null != outFile) {
+ try {
+ new JavaClassRenderer().render(javaClass, new
PrintWriter(outFile));
+ } catch (FileNotFoundException e) {
+ throw new CdkException(e);
+ }
+ }
+ }
+ }
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererTemplateParser.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererTemplateParser.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererTemplateParser.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -21,75 +21,83 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-package org.richfaces.builder.templates;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import javax.xml.stream.XMLStreamException;
+package org.richfaces.builder.templates;
-import org.richfaces.builder.model.JavaClass;
import org.richfaces.cdk.CdkContext;
import org.richfaces.cdk.CdkException;
import org.richfaces.cdk.ModelBuilder;
import org.richfaces.cdk.StandardSources;
-import org.richfaces.cdk.model.ClassDescription;
-import org.richfaces.cdk.model.Component;
-import org.richfaces.cdk.model.ComponentLibrary;
-import org.richfaces.cdk.model.RenderKit;
-import org.richfaces.cdk.model.Renderer;
+import org.richfaces.cdk.model.*;
+import javax.xml.stream.XMLStreamException;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+
/**
* <p class="changed_added_4_0"></p>
* @author asmirnov(a)exadel.com
*
*/
public class RendererTemplateParser implements ModelBuilder {
+ private CdkContext context;
- private CdkContext context;
+ /*
+ * (non-Javadoc)
+ * @see org.richfaces.cdk.ModelBuilder#build()
+ */
+ @Override
+ public ComponentLibrary build() throws CdkException {
+ ComponentLibrary library = new ComponentLibrary();
- /* (non-Javadoc)
- * @see org.richfaces.cdk.ModelBuilder#build()
- */
- @Override
- public ComponentLibrary build() throws CdkException {
- ComponentLibrary library = new ComponentLibrary();
- for(File file : getContext().getSources(StandardSources.RENDERER_TEMPLATES)){
- try {
- RootElementConsumer template = TemplateReader.parseTemplate(new
FileInputStream(file));
- RenderKit renderKit = library.findOrCreateRenderKit(template.getRenderKitId());
- Renderer renderer = renderKit.findOrCreateRenderer(template.getRendererType());
- renderer.setTemplate(template.getJavaClass());
- String componentType = template.getComponentType();
- if(null != componentType){
- Component component = library.findOrCreateComponent(componentType);
- component.getRenderers().add(renderer);
- }
- String family = template.getFamily();
- if(null != family){
- renderer.setFamily(family);
- }
- renderer.setRendererClass(new
ClassDescription(template.getJavaClass().getFullName()));
- } catch (FileNotFoundException e) {
- // TODO - log errors, marks mojo failed after whole build cycle.
- throw new CdkException(e);
- } catch (XMLStreamException e) {
- throw new CdkException(e);
- }
- }
- return library;
- }
+ for (File file : getContext().getSources(StandardSources.RENDERER_TEMPLATES)) {
+ try {
+ RootElementConsumer template = TemplateReader.parseTemplate(new
FileInputStream(file));
+ RenderKit renderKit =
library.findOrCreateRenderKit(template.getRenderKitId());
+ Renderer renderer =
renderKit.findOrCreateRenderer(template.getRendererType());
- /* (non-Javadoc)
- * @see org.richfaces.cdk.ModelBuilder#init(org.richfaces.cdk.CdkContext)
- */
- @Override
- public void init(CdkContext context) {
- this.context = context;
- }
+ renderer.setTemplate(template.getJavaClass());
- public CdkContext getContext() {
- return context;
- }
+ String componentType = template.getComponentType();
+
+ if (null != componentType) {
+ Component component = library.findOrCreateComponent(componentType);
+
+ component.getRenderers().add(renderer);
+ }
+
+ String family = template.getFamily();
+
+ if (null != family) {
+ renderer.setFamily(family);
+ }
+
+ renderer.setRendererClass(new
ClassDescription(template.getJavaClass().getFullName()));
+ } catch (FileNotFoundException e) {
+
+ // TODO - log errors, marks mojo failed after whole build cycle.
+ throw new CdkException(e);
+ } catch (XMLStreamException e) {
+ throw new CdkException(e);
+ }
+ }
+
+ return library;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.richfaces.cdk.ModelBuilder#init(org.richfaces.cdk.CdkContext)
+ */
+ @Override
+ public void init(CdkContext context) {
+ this.context = context;
+ }
+
+ public CdkContext getContext() {
+ return context;
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RootElementConsumer.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RootElementConsumer.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RootElementConsumer.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -1,18 +1,19 @@
package org.richfaces.builder.templates;
+
+import org.richfaces.builder.model.JavaClass;
+import org.richfaces.builder.model.JavaModifier;
+import org.richfaces.builder.model.JavaPackage;
+
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
-import javax.faces.render.RenderKit;
import javax.faces.render.RenderKitFactory;
import javax.faces.render.Renderer;
+
import javax.xml.namespace.QName;
import javax.xml.stream.events.Attribute;
import javax.xml.stream.events.StartElement;
-import org.richfaces.builder.model.JavaClass;
-import org.richfaces.builder.model.JavaModifier;
-import org.richfaces.builder.model.JavaPackage;
-
/**
* License Agreement.
*
@@ -36,130 +37,128 @@
/**
* @author Nick Belaevski
- *
+ *
*/
public class RootElementConsumer extends BaseTemplateConsumer {
-
- private String renderKitId = RenderKitFactory.HTML_BASIC_RENDER_KIT;
-
- private String rendererType;
-
- private String family;
-
- private String componentType;
+ private String renderKitId = RenderKitFactory.HTML_BASIC_RENDER_KIT;
+ private String componentType;
+ private String family;
+ private JavaClass javaClass;
+ private String rendererType;
- private JavaClass javaClass;
-
- public JavaClass getJavaClass() {
- return javaClass;
- }
+ public JavaClass getJavaClass() {
+ return javaClass;
+ }
- /**
- * <p class="changed_added_4_0"></p>
- * @return the renderKitId
- */
- public String getRenderKitId() {
- return renderKitId;
- }
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the renderKitId
+ */
+ public String getRenderKitId() {
+ return renderKitId;
+ }
- /**
- * <p class="changed_added_4_0"></p>
- * @return the rendererType
- */
- public String getRendererType() {
- return rendererType;
- }
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the rendererType
+ */
+ public String getRendererType() {
+ return rendererType;
+ }
- /**
- * <p class="changed_added_4_0"></p>
- * @return the family
- */
- public String getFamily() {
- return family;
- }
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the family
+ */
+ public String getFamily() {
+ return family;
+ }
- /**
- * <p class="changed_added_4_0"></p>
- * @return the componentType
- */
- public String getComponentType() {
- return componentType;
- }
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the componentType
+ */
+ public String getComponentType() {
+ return componentType;
+ }
- private String getAttributeValue(StartElement element, String attributeName) {
- Attribute attribute = element.getAttributeByName(new QName(attributeName));
- if (attribute != null) {
- String attributeValue = attribute.getValue();
- if (attributeValue != null && attributeValue.length() != 0) {
- return attributeValue;
- }
- }
-
- return null;
- }
+ private String getAttributeValue(StartElement element, String attributeName) {
+ Attribute attribute = element.getAttributeByName(new QName(attributeName));
- private String getSimpleClassName(String fullClassName) {
- int lastDotIdx = fullClassName.lastIndexOf('.');
+ if (attribute != null) {
+ String attributeValue = attribute.getValue();
- if (lastDotIdx != -1) {
- return fullClassName.substring(lastDotIdx + 1);
- } else {
- return fullClassName;
- }
- }
-
- private JavaClass createJavaClassByName(String fullName) {
- String simpleName = null;
- String packageName = "";
+ if (attributeValue != null && attributeValue.length() != 0) {
+ return attributeValue;
+ }
+ }
- int lastDotIdx = fullName.lastIndexOf('.');
+ return null;
+ }
- if (lastDotIdx != -1) {
- simpleName = fullName.substring(lastDotIdx + 1);
- packageName = fullName.substring(0, lastDotIdx);
- } else {
- simpleName = fullName;
- }
+ private String getSimpleClassName(String fullClassName) {
+ int lastDotIdx = fullClassName.lastIndexOf('.');
- return new JavaClass(simpleName, new JavaPackage(packageName));
- }
-
- @Override
- public Consumer consumeStartElement(StartElement startElement) {
- QName name = startElement.getName();
- if (isCdkNamespace(name) && "root".equals(name.getLocalPart())) {
+ if (lastDotIdx != -1) {
+ return fullClassName.substring(lastDotIdx + 1);
+ } else {
+ return fullClassName;
+ }
+ }
- String className = getAttributeValue(startElement, "class");
- if (className != null) {
- javaClass = createJavaClassByName(className);
- } else {
- javaClass = new JavaClass();
- }
-
- String superClassName = getAttributeValue(startElement, "superclass");
- if (superClassName != null) {
- javaClass.setSuperClass(createJavaClassByName(superClassName));
- } else {
- javaClass.setSuperClass(new JavaClass(Renderer.class));
- }
-
- javaClass.getModifiers().add(JavaModifier.PUBLIC);
-
- javaClass.addImport(ResponseWriter.class);
- javaClass.addImport(FacesContext.class);
- javaClass.addImport(UIComponent.class);
- javaClass.addImport(Renderer.class);
-
- String componentClassName = getAttributeValue(startElement,
"componentclass");
- javaClass.addImport(componentClassName);
- renderKitId = getAttributeValue(startElement, "renderkit");
- rendererType = getAttributeValue(startElement, "renderertype");
- family = getAttributeValue(startElement, "family");
- componentType = getAttributeValue(startElement, "componenttype");
- return new TemplateBodyConsumer(javaClass, getSimpleClassName(componentClassName));
- } else {
- throw new IllegalArgumentException();
- }
- }
+ private JavaClass createJavaClassByName(String fullName) {
+ String simpleName = null;
+ String packageName = "";
+ int lastDotIdx = fullName.lastIndexOf('.');
+ if (lastDotIdx != -1) {
+ simpleName = fullName.substring(lastDotIdx + 1);
+ packageName = fullName.substring(0, lastDotIdx);
+ } else {
+ simpleName = fullName;
+ }
+
+ return new JavaClass(simpleName, new JavaPackage(packageName));
+ }
+
+ @Override
+ public Consumer consumeStartElement(StartElement startElement) {
+ QName name = startElement.getName();
+
+ if (isCdkNamespace(name) && "root".equals(name.getLocalPart()))
{
+ String className = getAttributeValue(startElement, "class");
+
+ if (className != null) {
+ javaClass = createJavaClassByName(className);
+ } else {
+ javaClass = new JavaClass();
+ }
+
+ String superClassName = getAttributeValue(startElement,
"superclass");
+
+ if (superClassName != null) {
+ javaClass.setSuperClass(createJavaClassByName(superClassName));
+ } else {
+ javaClass.setSuperClass(new JavaClass(Renderer.class));
+ }
+
+ javaClass.getModifiers().add(JavaModifier.PUBLIC);
+ javaClass.addImport(ResponseWriter.class);
+ javaClass.addImport(FacesContext.class);
+ javaClass.addImport(UIComponent.class);
+ javaClass.addImport(Renderer.class);
+
+ String componentClassName = getAttributeValue(startElement,
"componentclass");
+
+ javaClass.addImport(componentClassName);
+ renderKitId = getAttributeValue(startElement, "renderkit");
+ rendererType = getAttributeValue(startElement, "renderertype");
+ family = getAttributeValue(startElement, "family");
+ componentType = getAttributeValue(startElement, "componenttype");
+
+ return new TemplateBodyConsumer(javaClass,
getSimpleClassName(componentClassName));
+ } else {
+ throw new IllegalArgumentException();
+ }
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/StructuralTagBodyConsumer.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/StructuralTagBodyConsumer.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/StructuralTagBodyConsumer.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -18,7 +18,11 @@
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
+
package org.richfaces.builder.templates;
+
import javax.xml.namespace.QName;
import javax.xml.stream.events.StartElement;
@@ -26,22 +30,21 @@
/**
* @author Nick Belaevski
- *
+ *
*/
public class StructuralTagBodyConsumer extends BaseTagBodyConsumer {
+ public StructuralTagBodyConsumer(MethodBodyStatement methodBodyStatement) {
+ super(methodBodyStatement);
+ }
- public StructuralTagBodyConsumer(MethodBodyStatement methodBodyStatement) {
- super(methodBodyStatement);
- }
+ @Override
+ public Consumer consumeStartElement(StartElement startElement) {
+ QName name = startElement.getName();
- @Override
- public Consumer consumeStartElement(StartElement startElement) {
- QName name = startElement.getName();
- if (isCdkNamespace(name)&& name.getLocalPart().equals("body")) {
- throw new IllegalArgumentException();
- } else {
- return super.consumeStartElement(startElement);
- }
- }
-
+ if (isCdkNamespace(name) && name.getLocalPart().equals("body"))
{
+ throw new IllegalArgumentException();
+ } else {
+ return super.consumeStartElement(startElement);
+ }
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/TemplateBodyConsumer.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/TemplateBodyConsumer.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/TemplateBodyConsumer.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -1,24 +1,22 @@
package org.richfaces.builder.templates;
-import java.io.IOException;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
+import org.richfaces.builder.model.*;
+
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
+
import javax.xml.namespace.QName;
-import javax.xml.stream.events.Attribute;
import javax.xml.stream.events.Characters;
import javax.xml.stream.events.EndElement;
import javax.xml.stream.events.StartElement;
-import org.richfaces.builder.model.Argument;
-import org.richfaces.builder.model.JavaClass;
-import org.richfaces.builder.model.JavaMethod;
-import org.richfaces.builder.model.JavaModifier;
-import org.richfaces.builder.model.MethodBody;
-import org.richfaces.builder.model.MethodBodyStatement;
+import java.io.IOException;
+import java.text.MessageFormat;
+
+import java.util.ArrayList;
+import java.util.List;
+
/**
* License Agreement.
*
@@ -42,110 +40,116 @@
/**
* @author Nick Belaevski
- *
+ *
*/
public class TemplateBodyConsumer extends BaseTemplateConsumer {
+ private List<MethodBodyStatement> statements = new
ArrayList<MethodBodyStatement>();
+ private String componentClassName;
+ private JavaClass javaClass;
- private JavaClass javaClass;
-
- private List<MethodBodyStatement> statements = new
ArrayList<MethodBodyStatement>();
-
- private String componentClassName;
-
- public TemplateBodyConsumer(JavaClass javaClass, String componentClassName) {
- super();
-
- this.javaClass = javaClass;
- this.componentClassName = componentClassName;
- }
+ public TemplateBodyConsumer(JavaClass javaClass, String componentClassName) {
+ super();
+ this.javaClass = javaClass;
+ this.componentClassName = componentClassName;
+ }
- @Override
- public void consumeCharacters(Characters characters) {
- String trimmedText = characters.getData().trim();
-
- if (trimmedText.length() != 0) {
- statements.add(createWriteText(characters));
- }
- }
+ @Override
+ public void consumeCharacters(Characters characters) {
+ String trimmedText = characters.getData().trim();
- @Override
- public void consumeEndElement(EndElement endElement) {
- QName name = endElement.getName();
-
- if (isCdkNamespace(name)) {
- if (name.getLocalPart().equals("body")) {
- flushStatements("encodeChildren");
- }
- } else {
- statements.add(createEndElement(endElement));
- }
- }
+ if (trimmedText.length() != 0) {
+ statements.add(createWriteText(characters));
+ }
+ }
- private void flushStatements(String methodName) {
- JavaMethod javaMethod = new JavaMethod(methodName, new Argument("context",
FacesContext.class),
- new Argument("uiComponent", UIComponent.class));
-
- javaMethod.getModifiers().add(JavaModifier.PUBLIC);
- javaMethod.getExceptions().add(IOException.class);
- MethodBody methodBody = new MethodBody(javaMethod);
- javaMethod.setMethodBody(methodBody);
+ @Override
+ public void consumeEndElement(EndElement endElement) {
+ QName name = endElement.getName();
- methodBody.addToBody(
- new MethodBodyStatement(MessageFormat.format("{0} component = ({0})
uiComponent;", componentClassName)));
- methodBody.addToBody(
- new MethodBodyStatement("ResponseWriter responseWriter =
context.getResponseWriter();"));
-
- for (MethodBodyStatement methodBodyStatement : statements) {
- methodBody.addToBody(methodBodyStatement);
- }
- statements.clear();
-
- javaClass.addMethod(javaMethod);
- }
+ if (isCdkNamespace(name)) {
+ if (name.getLocalPart().equals("body")) {
+ flushStatements("encodeChildren");
+ }
+ } else {
+ statements.add(createEndElement(endElement));
+ }
+ }
- @Override
- public Consumer consumeStartElement(StartElement startElement) {
- QName name = startElement.getName();
- if (isCdkNamespace(name)) {
- if ("body".equals(name.getLocalPart())) {
- flushStatements("encodeBegin");
- } else if ("if".equals(name.getLocalPart())) {
- MethodBodyStatement ifStatement = createIfExpression(startElement);
- statements.add(ifStatement);
- return new StructuralTagBodyConsumer(ifStatement);
- } else if ("choose".equals(name.getLocalPart())) {
- MethodBodyStatement chooseStatement = new MethodBodyStatement();
- statements.add(chooseStatement);
- return new ChooseTagBodyConsumer(chooseStatement);
- } else if ("call".equals(name.getLocalPart())) {
- statements.add(createCallExpression(startElement));
- }
- } else {
- statements.add(createStartElement(startElement));
- }
-
- return this;
- }
+ private void flushStatements(String methodName) {
+ JavaMethod javaMethod = new JavaMethod(methodName, new
Argument("context", FacesContext.class),
+ new Argument("uiComponent",
UIComponent.class));
- @Override
- public void exit() {
- super.exit();
-
- flushStatements("encodeEnd");
+ javaMethod.getModifiers().add(JavaModifier.PUBLIC);
+ javaMethod.getExceptions().add(IOException.class);
- JavaMethod getComponentClassMethod = new JavaMethod("getComponentClass",
Class.class);
- getComponentClassMethod.getModifiers().add(JavaModifier.PROTECTED);
- MethodBody methodBody = new MethodBody(getComponentClassMethod);
- methodBody.addToBody(createGetComponentClassMethod(componentClassName));
- getComponentClassMethod.setMethodBody(methodBody);
- javaClass.addMethod(getComponentClassMethod);
+ MethodBody methodBody = new MethodBody(javaMethod);
- JavaMethod convertToStringMethod = new JavaMethod("convertToString",
String.class, new Argument("obj", Object.class));
- convertToStringMethod.getModifiers().add(JavaModifier.PRIVATE);
- MethodBody convertToStringBody = new MethodBody(convertToStringMethod);
- convertToStringBody.addToBody(new MethodBodyStatement("return obj == null ?
\"\" : obj.toString();"));
- convertToStringMethod.setMethodBody(convertToStringBody);
- javaClass.addMethod(convertToStringMethod);
- }
+ javaMethod.setMethodBody(methodBody);
+ methodBody.addToBody(new MethodBodyStatement(MessageFormat.format("{0}
component = ({0}) uiComponent;",
+ componentClassName)));
+ methodBody.addToBody(new MethodBodyStatement("ResponseWriter responseWriter
= context.getResponseWriter();"));
+ for (MethodBodyStatement methodBodyStatement : statements) {
+ methodBody.addToBody(methodBodyStatement);
+ }
+
+ statements.clear();
+ javaClass.addMethod(javaMethod);
+ }
+
+ @Override
+ public Consumer consumeStartElement(StartElement startElement) {
+ QName name = startElement.getName();
+
+ if (isCdkNamespace(name)) {
+ if ("body".equals(name.getLocalPart())) {
+ flushStatements("encodeBegin");
+ } else if ("if".equals(name.getLocalPart())) {
+ MethodBodyStatement ifStatement = createIfExpression(startElement);
+
+ statements.add(ifStatement);
+
+ return new StructuralTagBodyConsumer(ifStatement);
+ } else if ("choose".equals(name.getLocalPart())) {
+ MethodBodyStatement chooseStatement = new MethodBodyStatement();
+
+ statements.add(chooseStatement);
+
+ return new ChooseTagBodyConsumer(chooseStatement);
+ } else if ("call".equals(name.getLocalPart())) {
+ statements.add(createCallExpression(startElement));
+ }
+ } else {
+ statements.add(createStartElement(startElement));
+ }
+
+ return this;
+ }
+
+ @Override
+ public void exit() {
+ super.exit();
+ flushStatements("encodeEnd");
+
+ JavaMethod getComponentClassMethod = new
JavaMethod("getComponentClass", Class.class);
+
+ getComponentClassMethod.getModifiers().add(JavaModifier.PROTECTED);
+
+ MethodBody methodBody = new MethodBody(getComponentClassMethod);
+
+ methodBody.addToBody(createGetComponentClassMethod(componentClassName));
+ getComponentClassMethod.setMethodBody(methodBody);
+ javaClass.addMethod(getComponentClassMethod);
+
+ JavaMethod convertToStringMethod = new JavaMethod("convertToString",
String.class,
+ new Argument("obj",
Object.class));
+
+ convertToStringMethod.getModifiers().add(JavaModifier.PRIVATE);
+
+ MethodBody convertToStringBody = new MethodBody(convertToStringMethod);
+
+ convertToStringBody.addToBody(new MethodBodyStatement("return obj == null ?
\"\" : obj.toString();"));
+ convertToStringMethod.setMethodBody(convertToStringBody);
+ javaClass.addMethod(convertToStringMethod);
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/TemplateReader.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/TemplateReader.java 2009-11-01
16:01:20 UTC (rev 15788)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/TemplateReader.java 2009-11-01
16:17:29 UTC (rev 15789)
@@ -19,9 +19,13 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+
+
package org.richfaces.builder.templates;
+
import java.io.IOException;
import java.io.InputStream;
+
import java.util.ArrayDeque;
import java.util.Deque;
@@ -39,133 +43,137 @@
/**
* @author Nick Belaevski
- *
+ *
*/
-public class TemplateReader {
+public final class TemplateReader {
+ private static final Logger LOG = LoggerFactory.getLogger();
- private static final Logger log = LoggerFactory.getLogger();
+ private TemplateReader() {}
- private static final class ConsumersTracker {
-
- private final class ConsumerEntry {
+ public static RootElementConsumer parseTemplate(InputStream stream) throws
XMLStreamException {
+ XMLEventReader xmlEventReader =
XMLInputFactoryHolder.FACTORY.createXMLEventReader(stream);
- public ConsumerEntry(Consumer consumer) {
- this.consumer = consumer;
- }
+ try {
+ ConsumersTracker tracker = new ConsumersTracker();
+ RootElementConsumer consumer = new RootElementConsumer();
- private Consumer consumer;
-
- private int depth = 0;
+ tracker.pushConsumer(consumer);
- public void increaseDepth() {
- depth++;
- }
-
- public void decreaseDepth() {
- depth--;
- }
-
- public boolean isZeroDepth() {
- return depth == 0;
- }
- }
-
- private Deque<ConsumerEntry> consumerEntries = new
ArrayDeque<ConsumerEntry>();
-
- private ConsumerEntry consumerEntry = null;
-
- public void pushConsumer(Consumer consumer) {
- if (consumerEntry != null && consumer == consumerEntry.consumer) {
- consumerEntry.increaseDepth();
- } else {
- if (consumerEntry != null) {
- consumerEntries.push(consumerEntry);
- }
-
- consumerEntry = new ConsumerEntry(consumer);
- consumer.enter();
- }
- }
-
- public Consumer peekConsumer() {
- return consumerEntry.consumer;
- }
-
- public Consumer popConsumer() {
- if (consumerEntry.isZeroDepth()) {
- consumerEntry.consumer.exit();
- if (!consumerEntries.isEmpty()) {
- consumerEntry = consumerEntries.pop();
- } else {
- consumerEntry = null;
- }
- } else {
- consumerEntry.decreaseDepth();
- }
-
- if (consumerEntry != null) {
- return consumerEntry.consumer;
- } else {
- return null;
- }
- }
- }
-
- private static class XMLInputFactoryHolder {
- static final XMLInputFactory factory = XMLInputFactory.newInstance();
-
- static {
- factory.setProperty("javax.xml.stream.isNamespaceAware", Boolean.TRUE);
- factory.setProperty("javax.xml.stream.isCoalescing", Boolean.TRUE);
- }
- }
-
- public static RootElementConsumer parseTemplate(InputStream stream) throws
XMLStreamException {
- XMLEventReader xmlEventReader =
XMLInputFactoryHolder.factory.createXMLEventReader(stream);
-
- try {
- ConsumersTracker tracker = new ConsumersTracker();
- RootElementConsumer consumer = new RootElementConsumer();
- tracker.pushConsumer(consumer);
-
- while (xmlEventReader.hasNext()) {
- XMLEvent event = xmlEventReader.nextEvent();
-
- if (event.isStartElement()) {
- StartElement startElement = event.asStartElement();
- Consumer currentConsumer = tracker.peekConsumer();
- Consumer nextConsumer = currentConsumer.consumeStartElement(startElement);
-
- tracker.pushConsumer(nextConsumer);
- } else if (event.isEndElement()) {
- EndElement endElement = event.asEndElement();
- Consumer currentConsumer = tracker.popConsumer();
- currentConsumer.consumeEndElement(endElement);
- } else if (event.isCharacters()) {
- Characters characters = event.asCharacters();
- tracker.peekConsumer().consumeCharacters(characters);
- }
- }
-
- tracker.popConsumer();
-
- return consumer;
- } finally {
- try {
- stream.close();
- } catch (IOException e) {
- log.warn("Error to close XML template stream", e);
- }
- try {
- xmlEventReader.close();
- } catch (XMLStreamException e) {
- log.warn("Error to close XMLEventReader for renderer template parser", e);
- }
- }
-
- }
-
- public static JavaClass parse(InputStream input) throws XMLStreamException{
- return parseTemplate(input).getJavaClass();
- }
+ while (xmlEventReader.hasNext()) {
+ XMLEvent event = xmlEventReader.nextEvent();
+
+ if (event.isStartElement()) {
+ StartElement startElement = event.asStartElement();
+ Consumer currentConsumer = tracker.peekConsumer();
+ Consumer nextConsumer =
currentConsumer.consumeStartElement(startElement);
+
+ tracker.pushConsumer(nextConsumer);
+ } else if (event.isEndElement()) {
+ EndElement endElement = event.asEndElement();
+ Consumer currentConsumer = tracker.popConsumer();
+
+ currentConsumer.consumeEndElement(endElement);
+ } else if (event.isCharacters()) {
+ Characters characters = event.asCharacters();
+
+ tracker.peekConsumer().consumeCharacters(characters);
+ }
+ }
+
+ tracker.popConsumer();
+
+ return consumer;
+ } finally {
+ try {
+ stream.close();
+ } catch (IOException e) {
+ LOG.warn("Error to close XML template stream", e);
+ }
+
+ try {
+ xmlEventReader.close();
+ } catch (XMLStreamException e) {
+ LOG.warn("Error to close XMLEventReader for renderer template
parser", e);
+ }
+ }
+ }
+
+ public static JavaClass parse(InputStream input) throws XMLStreamException {
+ return parseTemplate(input).getJavaClass();
+ }
+
+ private static final class ConsumersTracker {
+ private Deque<ConsumerEntry> consumerEntries = new
ArrayDeque<ConsumerEntry>();
+ private ConsumerEntry consumerEntry = null;
+
+ public void pushConsumer(Consumer consumer) {
+ if (consumerEntry != null && consumer == consumerEntry.consumer) {
+ consumerEntry.increaseDepth();
+ } else {
+ if (consumerEntry != null) {
+ consumerEntries.push(consumerEntry);
+ }
+
+ consumerEntry = new ConsumerEntry(consumer);
+ consumer.enter();
+ }
+ }
+
+ public Consumer peekConsumer() {
+ return consumerEntry.consumer;
+ }
+
+ public Consumer popConsumer() {
+ if (consumerEntry.isZeroDepth()) {
+ consumerEntry.consumer.exit();
+
+ if (!consumerEntries.isEmpty()) {
+ consumerEntry = consumerEntries.pop();
+ } else {
+ consumerEntry = null;
+ }
+ } else {
+ consumerEntry.decreaseDepth();
+ }
+
+ if (consumerEntry != null) {
+ return consumerEntry.consumer;
+ } else {
+ return null;
+ }
+ }
+
+ private final class ConsumerEntry {
+ private int depth = 0;
+ private Consumer consumer;
+
+ public ConsumerEntry(Consumer consumer) {
+ this.consumer = consumer;
+ }
+
+ public void increaseDepth() {
+ depth++;
+ }
+
+ public void decreaseDepth() {
+ depth--;
+ }
+
+ public boolean isZeroDepth() {
+ return depth == 0;
+ }
+ }
+ }
+
+
+ private static final class XMLInputFactoryHolder {
+ static final XMLInputFactory FACTORY = XMLInputFactory.newInstance();
+
+ static {
+ FACTORY.setProperty("javax.xml.stream.isNamespaceAware",
Boolean.TRUE);
+ FACTORY.setProperty("javax.xml.stream.isCoalescing",
Boolean.TRUE);
+ }
+
+ private XMLInputFactoryHolder() {}
+ }
}