[richfaces-svn-commits] JBoss Rich Faces SVN: r15789 - in root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder: render and 1 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Sun Nov 1 11:17:30 EST 2009


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 at 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 at 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() {}
+    }
 }



More information about the richfaces-svn-commits mailing list