Author: nbelaevski
Date: 2010-01-22 07:44:51 -0500 (Fri, 22 Jan 2010)
New Revision: 16353
Removed:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/java/macros/
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/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/JavaField.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/JavaPackage.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/cdk/templatecompiler/RendererClassGenerator.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererClassVisitor.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/Template.java
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/java/class.ftl
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/java/write-attribute.ftl
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/java/write-attributes-set.ftl
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/templatecompiler/RendererTemplateParserTest.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/templatecompiler/XhtmlAttributesParsingTest.java
root/cdk/trunk/plugins/generator/src/test/resources/org/richfaces/cdk/templatecompiler/dummy.template.xml
Log:
https://jira.jboss.org/jira/browse/RF-7732
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 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/Argument.java 2010-01-22
12:44:51 UTC (rev 16353)
@@ -27,20 +27,28 @@
* @author Maksim Kaszynski
*/
public class Argument {
+
private String name;
- private Class<?> type;
+
+ private JavaClass type;
public Argument(String name, Class<?> type) {
super();
this.name = name;
- this.type = type;
+ this.type = new JavaClass(type);
}
+ public Argument(String name, String type) {
+ super();
+ this.name = name;
+ this.type = new JavaClass(type);
+ }
+
public static Argument arg(String name, Class<?> type) {
return new Argument(name, type);
}
- public Class<?> getType() {
+ public JavaClass getType() {
return type;
}
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 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaAnnotation.java 2010-01-22
12:44:51 UTC (rev 16353)
@@ -32,19 +32,19 @@
*/
public class JavaAnnotation {
private List<String> arguments = new ArrayList<String>();
- private Class<?> type;
+ private JavaClass type;
- public JavaAnnotation(Class<?> type) {
+ public JavaAnnotation(JavaClass type) {
super();
this.type = type;
}
- public JavaAnnotation(Class<?> type, String... parameters) {
+ public JavaAnnotation(JavaClass type, String... parameters) {
this(type);
this.arguments = Arrays.asList(parameters);
}
- public Class<?> getType() {
+ public JavaClass getType() {
return type;
}
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 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaClass.java 2010-01-22
12:44:51 UTC (rev 16353)
@@ -45,6 +45,8 @@
private JavaClass superClass = DEFAULT_SUPERCLASS;
private JavaPackage pakg;
+ private String simpleName;
+
public JavaClass() {
super();
}
@@ -53,22 +55,66 @@
this(clazz.getSimpleName(), new JavaPackage(clazz.getPackage()));
}
- public JavaClass(String shortName, JavaPackage pakg) {
- super(shortName);
+ public JavaClass(String name) {
+ this(getSimpleName(name), createPackage(name));
+ }
+
+ public JavaClass(String simpleName, JavaPackage pakg) {
+ super(getFullName(pakg, simpleName));
this.pakg = pakg;
+ this.simpleName = simpleName;
}
- public JavaClass(String shortName, JavaPackage pakg, Class<?> superClass) {
- this(shortName, pakg);
+ public JavaClass(String simpleName, JavaPackage pakg, Class<?> superClass) {
+ this(simpleName, pakg);
setSuperClass(new JavaClass(superClass));
}
+ private static String getFullName(JavaPackage javaPackage, String className) {
+ StringBuilder fullName = new StringBuilder();
+
+ fullName.append(javaPackage.getName());
+
+ if (fullName.length() != 0) {
+ fullName.append('.');
+ }
+ fullName.append(className);
+
+ return fullName.toString();
+ }
+
+ private static JavaPackage createPackage(String name) {
+ int lastDotIdx = name.lastIndexOf('.');
+
+ if (lastDotIdx != -1) {
+ return new JavaPackage(name.substring(0, lastDotIdx));
+ } else {
+ return new JavaPackage("");
+ }
+ }
+
+ private static String getSimpleName(String name) {
+ int lastDotIdx = name.lastIndexOf('.');
+
+ if (lastDotIdx != -1) {
+ return name.substring(lastDotIdx + 1);
+ } else {
+ return name;
+ }
+ }
+
public void addImport(String name) {
- imports.add(new RuntimeImport(name));
+ if (shouldAddToImports(name)) {
+ imports.add(new RuntimeImport(name));
+ }
}
+ public void addImport(JavaClass javaClass) {
+ addImport(javaClass.getName());
+ }
+
public void addImport(Class<?> claz) {
- if (shouldAddToImports(claz)) {
+ if (shouldAddToImports(claz.getName())) {
imports.add(new ClassImport(claz));
}
}
@@ -139,7 +185,7 @@
public void setSuperClass(JavaClass superClass) {
this.superClass = superClass;
- addImport(superClass.getFullName());
+ addImport(superClass.getName());
}
public void setPackage(JavaPackage s) {
@@ -162,37 +208,24 @@
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();
+ public String getSimpleName() {
+ return simpleName;
}
-
- // 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())));
- }
- }
+
+ private boolean shouldAddToImports(String className) {
+ if (className == null || className.length() == 0) {
+ return false;
}
-
- return result;
+
+ //default package & primitive types
+ if (className.indexOf('.') == -1) {
+ return false;
+ }
+
+ if (className.matches("^java\\.lang\\.[^\\.]+$")) {
+ return false;
+ }
+
+ return true;
}
}
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 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaField.java 2010-01-22
12:44:51 UTC (rev 16353)
@@ -28,23 +28,31 @@
* @author Maksim Kaszynski
*/
public class JavaField extends JavaLanguageElement {
- private Class<?> type;
+ private JavaClass type;
private Object value;
- private Class<?>[] genericArguments;
+ private JavaClass[] genericArguments;
public JavaField(Class<?> type, String name) {
+ this(new JavaClass(type), name, null);
+ }
+
+ public JavaField(JavaClass type, String name) {
this(type, name, null);
}
public JavaField(Class<?> type, String name, Object value) {
+ this(new JavaClass(type), name, value);
+ }
+
+ public JavaField(JavaClass type, String name, Object value) {
super(name);
this.type = type;
this.value = value;
}
- public Class<?> getType() {
+ public JavaClass getType() {
return type;
}
@@ -59,14 +67,14 @@
/**
* @return the genericArguments
*/
- public Class<?>[] getGenericArguments() {
+ public JavaClass[] getGenericArguments() {
return genericArguments;
}
/**
* @param genericArguments the genericArguments to set
*/
- public void setGenericArguments(Class<?>[] genericArguments) {
+ public void setGenericArguments(JavaClass[] genericArguments) {
this.genericArguments = genericArguments;
}
@@ -74,7 +82,7 @@
StringBuilder result = new StringBuilder();
if (genericArguments != null) {
- for (Class<?> genericArgument : genericArguments) {
+ for (JavaClass genericArgument : genericArguments) {
if (result.length() == 0) {
result.append('<');
} else {
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 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaLanguageElement.java 2010-01-22
12:44:51 UTC (rev 16353)
@@ -68,16 +68,24 @@
modifiers.add(modifier);
}
+ public void addAnnotation(Class<?> annotation) {
+ addAnnotation(new JavaClass(annotation));
+ }
+
+ public void addAnnotation(JavaClass annotation) {
+ addAnnotation(new JavaAnnotation(annotation));
+ }
+
public void addAnnotation(JavaAnnotation annotation) {
annotations.add(annotation);
}
public void addAnnotation(Class<?> annotation, String... arguments) {
- annotations.add(new JavaAnnotation(annotation, arguments));
+ addAnnotation(new JavaClass(annotation), arguments);
}
- public void addAnnotation(Class<?> annotation) {
- annotations.add(new JavaAnnotation(annotation));
+ public void addAnnotation(JavaClass annotation, String... arguments) {
+ annotations.add(new JavaAnnotation(annotation, arguments));
}
public void addComment(JavaComment comment) {
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 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaMethod.java 2010-01-22
12:44:51 UTC (rev 16353)
@@ -32,12 +32,12 @@
private List<Argument> arguments = new ArrayList<Argument>();
private List<Class<? extends Throwable>> exceptions = new
ArrayList<Class<? extends Throwable>>();
private MethodBody methodBody;
- private Class<?> returnType;
+ private JavaClass returnType;
public JavaMethod(String name) {
super(name);
- this.returnType = Void.TYPE;
+ this.returnType = new JavaClass(Void.TYPE);
}
public JavaMethod(String name, Argument... arguments) {
@@ -47,7 +47,7 @@
public JavaMethod(String name, Class<?> returnType, Argument... arguments) {
this(name);
- this.returnType = returnType;
+ this.returnType = new JavaClass(returnType);
this.arguments = Arrays.asList(arguments);
}
@@ -67,7 +67,7 @@
return methodBody;
}
- public Class<?> getReturnType() {
+ public JavaClass getReturnType() {
return returnType;
}
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 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/JavaPackage.java 2010-01-22
12:44:51 UTC (rev 16353)
@@ -28,13 +28,17 @@
private String name;
public JavaPackage(Package pkg) {
- this(pkg.getName());
+ this(getPackageName(pkg));
}
public JavaPackage(String name) {
super();
this.name = name;
}
+
+ private static String getPackageName(Package pkg) {
+ return pkg != null ? pkg.getName() : "";
+ }
public String getName() {
return name;
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 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/model/RuntimeImport.java 2010-01-22
12:44:51 UTC (rev 16353)
@@ -27,6 +27,7 @@
* @author Maksim Kaszynski
*/
public class RuntimeImport implements JavaImport {
+
private String name;
public RuntimeImport(String name) {
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererClassGenerator.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererClassGenerator.java 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererClassGenerator.java 2010-01-22
12:44:51 UTC (rev 16353)
@@ -86,7 +86,7 @@
}
JavaClass javaClass = visitor.getGeneratedClass();
- String fullName = javaClass.getFullName();
+ String fullName = javaClass.getName();
File outFile = context.createOutputFile(
StandardOutputs.RENDERER_CLASSES, fullName.replace(
'.', '/')
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererClassVisitor.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererClassVisitor.java 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererClassVisitor.java 2010-01-22
12:44:51 UTC (rev 16353)
@@ -44,7 +44,6 @@
import org.richfaces.builder.model.JavaField;
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 org.richfaces.builder.model.MethodBodyStatementsContainer;
import org.richfaces.cdk.CdkException;
@@ -117,13 +116,11 @@
private static final Logger LOG = LoggerFactory.getLogger();
- private static final String XHTML_EL_NAMESPACE =
"http://richfaces.org/cdk/xhtml-el";
-
private static final Set<String> DEFAULT_NAMESPACES = new
HashSet<String>();
static {
- DEFAULT_NAMESPACES.add(XHTML_EL_NAMESPACE);
-
DEFAULT_NAMESPACES.add("http://www.w3.org/1999/xhtml");
+ DEFAULT_NAMESPACES.add(Template.XHTML_EL_NAMESPACE);
+ DEFAULT_NAMESPACES.add(Template.XHTML_NAMESPACE);
}
private MethodBodyStatementsContainer currentStatement;
@@ -148,13 +145,13 @@
//TODO - cache unmarshalled data
SchemaSet schemaSet =
jaxbBinding.unmarshal("urn:attributes:xhtml-el.xml", null, SchemaSet.class);
- this.attributesSchema = schemaSet.getSchemas().get(XHTML_EL_NAMESPACE);
+ this.attributesSchema = schemaSet.getSchemas().get(Template.XHTML_EL_NAMESPACE);
}
private void initializeJavaClass() {
- this.generatedClass = createJavaClassByName(compositeInterface.getJavaClass());
+ this.generatedClass = new JavaClass(compositeInterface.getJavaClass());
this.generatedClass.addModifier(JavaModifier.PUBLIC);
-
this.generatedClass.setSuperClass(createJavaClassByName(compositeInterface.getBaseClass()));
+ this.generatedClass.setSuperClass(new
JavaClass(compositeInterface.getBaseClass()));
this.generatedClass.addImport(FacesContext.class);
this.generatedClass.addImport(ResponseWriter.class);
@@ -246,7 +243,7 @@
JavaClass javaClass = initialClass;
while (javaClass != null) {
- Type type = TypesFactory.getType(javaClass.getFullName(), classLoader);
+ Type type = TypesFactory.getType(javaClass.getName(), classLoader);
if (knownSuperClass.isAssignableFrom(type.getRawType())) {
result = type;
break;
@@ -263,8 +260,10 @@
}
private String createPassThroughAttributeCode(String attributeName, String[]
eventNames) {
+
generatedClass.addImport("org.richfaces.renderkit.ComponentAttribute");
+
StringBuilder sb = new StringBuilder();
- sb.append("new org.richfaces.renderkit.ComponentAttribute(");
+ sb.append("new ComponentAttribute(");
sb.append('"');
sb.append(StringUtils.getEscapedString(attributeName));
@@ -308,17 +307,14 @@
passThroughField.addModifier(JavaModifier.STATIC);
passThroughField.addModifier(JavaModifier.FINAL);
- //TODO - refactor and remove class loading!
+
generatedClass.addImport("org.richfaces.renderkit.ComponentAttribute");
+ generatedClass.addImport("org.richfaces.renderkit.RenderKitUtils");
+
//TODO - get rid of FQNs for classes via imports
- try {
- passThroughField.setGenericArguments(new Class<?>[] { String.class,
- Class.forName("org.richfaces.renderkit.ComponentAttribute",
false, classLoader) });
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+ passThroughField.setGenericArguments(new JavaClass[] { new
JavaClass(String.class),
+ new JavaClass("org.richfaces.renderkit.ComponentAttribute") });
- StringBuilder fieldValue = new
StringBuilder("org.richfaces.renderkit.ComponentAttribute.createMap(");
+ StringBuilder fieldValue = new
StringBuilder("ComponentAttribute.createMap(");
boolean isFirstArgument = true;
for (Map.Entry<String, Attribute> entry : attributesMap.entrySet()) {
if (isFirstArgument) {
@@ -386,21 +382,6 @@
createMethodContext();
}
- 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));
- }
-
private void defineObject(Type type, String name, String initializationExpression) {
currentStatement.addStatement(new DefineObjectStatement(type, name,
initializationExpression));
localsTypesMap.put(name, type);
@@ -488,6 +469,8 @@
} else {
String attributeLocalName = attributeName.getLocalPart();
if (writtenAttributes.add(attributeLocalName)) {
+ //TODO externalize
+
generatedClass.addImport("org.richfaces.renderkit.RenderKitUtils");
currentStatement.addStatement(new
WriteAttributeStatement(attributeLocalName, compileEl(
attributeValue.toString(), String.class)));
}
@@ -514,8 +497,8 @@
if (!actualAttributesMap.isEmpty()) {
JavaField passThroughField =
createPassThroughField(actualAttributesMap);
generatedClass.addField(passThroughField);
-
- // TODO: optimize batch attributes encoding
+ //TODO externalize
+
generatedClass.addImport("org.richfaces.renderkit.RenderKitUtils");
currentStatement.addStatement(new
WriteAttributesSetStatement(passThroughField.getName()));
}
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/Template.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/Template.java 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/Template.java 2010-01-22
12:44:51 UTC (rev 16353)
@@ -23,9 +23,10 @@
package org.richfaces.cdk.templatecompiler.model;
+import java.io.Serializable;
+
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import java.io.Serializable;
/**
* <p class="changed_added_4_0"></p>
@@ -42,6 +43,10 @@
public static final String COMPOSITE_NAMESPACE =
"http://richfaces.org/cdk/jsf/composite";
+ public static final String XHTML_EL_NAMESPACE =
"http://richfaces.org/cdk/xhtml-el";
+
+ public static final String XHTML_NAMESPACE =
"http://www.w3.org/1999/xhtml";
+
private static final long serialVersionUID = -6900382133123748812L;
private CompositeInterface compositeInterface;
Modified:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/java/class.ftl
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/java/class.ftl 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/java/class.ftl 2010-01-22
12:44:51 UTC (rev 16353)
@@ -4,7 +4,7 @@
import ${import.name};
</#list>
-<@renderCommonJavaElementStuff element=modelItem />class ${modelItem.name} <#if
modelItem.superClass.name != 'java.lang.Object'>extends
${modelItem.superClass.name} </#if>{
+<@renderCommonJavaElementStuff element=modelItem />class ${modelItem.simpleName}
<#if modelItem.superClass.name != 'java.lang.Object'>extends
${modelItem.superClass.simpleName} </#if>{
<#list modelItem.fields as field>
<@renderCommonJavaElementStuff element=field
/>${field.type.simpleName}${field.genericSignature} ${field.name}<#if
field.value??> = ${field.value}</#if>;
</#list>
Modified:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/java/write-attribute.ftl
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/java/write-attribute.ftl 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/java/write-attribute.ftl 2010-01-22
12:44:51 UTC (rev 16353)
@@ -1,3 +1 @@
-<#import './macros/write-attribute.ftl' as writeAttributeTemplate />
-
-<(a)writeAttributeTemplate.writeAttributeMacro
attributeName="${modelItem.attributeName}"
attributeValue="${modelItem.valueExpression}" />
\ No newline at end of file
+RenderKitUtils.renderAttribute(${facesContextVariable},
"${modelItem.attributeName}", ${modelItem.valueExpression});
\ No newline at end of file
Modified:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/java/write-attributes-set.ftl
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/java/write-attributes-set.ftl 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/java/write-attributes-set.ftl 2010-01-22
12:44:51 UTC (rev 16353)
@@ -1,4 +1,2 @@
-<#import './macros/write-attribute.ftl' as writeAttributeTemplate />
-
-org.richfaces.renderkit.RenderKitUtils.renderPassThroughAttributesOptimized(${facesContextVariable},
${componentVariable},
+RenderKitUtils.renderPassThroughAttributes(${facesContextVariable}, ${componentVariable},
${modelItem.passThroughFieldName});
\ No newline at end of file
Modified:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/templatecompiler/RendererTemplateParserTest.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/templatecompiler/RendererTemplateParserTest.java 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/templatecompiler/RendererTemplateParserTest.java 2010-01-22
12:44:51 UTC (rev 16353)
@@ -65,11 +65,11 @@
private CdkContext cdkContext;
- private RenderKitModel getDefaultRenderkitFromModel() {
+ private RenderKitModel getRenderkitFromModel(String renderkitId) {
Map<Id, RenderKitModel> renderKits =
cdkContext.getLibrary().getRenderKits();
assertNotNull(renderKits);
- RenderKitModel renderKit = renderKits.get(new
RenderKitModel.Id(RenderKitFactory.HTML_BASIC_RENDER_KIT));
+ RenderKitModel renderKit = renderKits.get(new RenderKitModel.Id(renderkitId));
assertNotNull(renderKit);
return renderKit;
@@ -256,7 +256,7 @@
parser.mergeTemplateIntoModel(template);
- RenderKitModel renderKit = getDefaultRenderkitFromModel();
+ RenderKitModel renderKit =
getRenderkitFromModel(RenderKitFactory.HTML_BASIC_RENDER_KIT);
RendererModel renderer = getFirstRendererFromRenderkit(renderKit);
assertEquals(new
ClassDescription("org.richfaces.renderkit.html.BasicRendererImpl"), renderer
@@ -264,13 +264,13 @@
}
@Test
- public void parserTest() throws Exception {
+ public void dummyComponentTest() throws Exception {
Template template =
parser.parseTemplate("urn:resource:org/richfaces/cdk/templatecompiler/dummy.template.xml");
assertNotNull(template);
parser.mergeTemplateIntoModel(template);
- RenderKitModel renderKit = getDefaultRenderkitFromModel();
+ RenderKitModel renderKit =
getRenderkitFromModel("org.richfaces.CUSTOM_RENDERKIT");
RendererModel renderer = getFirstRendererFromRenderkit(renderKit);
assertEquals(new
ClassDescription("org.richfaces.renderkit.html.DummyRendererImpl"), renderer
Modified:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/templatecompiler/XhtmlAttributesParsingTest.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/templatecompiler/XhtmlAttributesParsingTest.java 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/templatecompiler/XhtmlAttributesParsingTest.java 2010-01-22
12:44:51 UTC (rev 16353)
@@ -41,6 +41,7 @@
import org.richfaces.cdk.attributes.Schema;
import org.richfaces.cdk.attributes.SchemaSet;
import org.richfaces.cdk.attributes.Attribute.Kind;
+import org.richfaces.cdk.templatecompiler.model.Template;
import com.google.common.base.Predicate;
@@ -133,7 +134,7 @@
SchemaSet schemaSet = (SchemaSet)
unmarshaller.unmarshal(parsedSchemaDataResource);
// TODO make constants
- xhtmlSchema =
schemaSet.getSchemas().get("http://richfaces.org/cdk/xhtml-el");
+ xhtmlSchema = schemaSet.getSchemas().get(Template.XHTML_EL_NAMESPACE);
}
@After
@@ -185,4 +186,17 @@
}
}
+ @Test
+ public void testRequiredAttributes() throws Exception {
+ Collection<Attribute> requiredAttributes = findAttributesByPredicate(new
Predicate<Attribute>() {
+
+ @Override
+ public boolean apply(Attribute input) {
+ return input.isRequired();
+ }
+ });
+
+ Collection<String> requiredAttributeNames =
getNamesCollection(requiredAttributes);
+ System.out.println("XhtmlAttributesParsingTest.testRequiredAttributes():
" + requiredAttributeNames);
+ }
}
Modified:
root/cdk/trunk/plugins/generator/src/test/resources/org/richfaces/cdk/templatecompiler/dummy.template.xml
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/resources/org/richfaces/cdk/templatecompiler/dummy.template.xml 2010-01-21
16:09:49 UTC (rev 16352)
+++
root/cdk/trunk/plugins/generator/src/test/resources/org/richfaces/cdk/templatecompiler/dummy.template.xml 2010-01-22
12:44:51 UTC (rev 16353)
@@ -7,6 +7,7 @@
<cc:interface>
<cdk:class>org.richfaces.renderkit.html.DummyRendererImpl</cdk:class>
<cdk:component-family>org.richfaces.Dummy</cdk:component-family>
+ <cdk:renderkit-id>org.richfaces.CUSTOM_RENDERKIT</cdk:renderkit-id>
<cc:attribute name="onclick">
<cc:clientBehavior event="click" />