Author: alexsmirnov
Date: 2010-03-30 20:11:47 -0400 (Tue, 30 Mar 2010)
New Revision: 16687
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ProcessorBase.java
Log:
https://jira.jboss.org/jira/browse/RF-8523 - process renderer-specific components from
annotations.
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java 2010-03-30
23:44:36 UTC (rev 16686)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java 2010-03-31
00:11:47 UTC (rev 16687)
@@ -23,6 +23,7 @@
package org.richfaces.cdk.apt.processors;
+import com.google.common.collect.Lists;
import com.google.inject.Inject;
import org.richfaces.cdk.CdkException;
import org.richfaces.cdk.annotations.Description;
@@ -47,6 +48,7 @@
import javax.lang.model.type.MirroredTypesException;
import javax.lang.model.type.TypeMirror;
import java.lang.annotation.Annotation;
+import java.util.List;
import java.util.Set;
/**
@@ -165,6 +167,19 @@
processEvents(componentElement, component, annotation);
// TODO - process interfaces() attribute.
+ List<ClassName> interfaceNames = Lists.newArrayList();
+ try {
+ Class<?>[] interfaces = annotation.interfaces();
+ for (Class<?> clazz : interfaces) {
+ interfaceNames.add(new ClassName(clazz));
+ }
+ } catch (MirroredTypesException e) {
+ List<? extends TypeMirror> typeMirrors = e.getTypeMirrors();
+ for(TypeMirror mirror :typeMirrors){
+ // TODO call processAttributes with element from type mirror.
+ interfaceNames.add(ClassName.parseName(mirror.toString()));
+ }
+ }
processAttributes(componentElement, component,annotation.attributes());
for (Tag tag : annotation.tag()) {
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ProcessorBase.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ProcessorBase.java 2010-03-30
23:44:36 UTC (rev 16686)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ProcessorBase.java 2010-03-31
00:11:47 UTC (rev 16687)
@@ -24,6 +24,7 @@
import javax.lang.model.element.Modifier;
import javax.lang.model.element.TypeElement;
import java.util.Collection;
+import java.util.List;
import java.util.Set;
public abstract class ProcessorBase {
@@ -152,7 +153,6 @@
Set<BeanProperty> properties = Sets.newHashSet();
properties.addAll(sourceUtils.getBeanPropertiesAnnotatedWith(Attribute.class,
componentClassName));
properties.addAll(sourceUtils.getAbstractBeanProperties(componentClassName));
-
// TODO - encapsulate attribute builder into utility class.
for (BeanProperty beanProperty : properties) {
attributeProcessor.process(beanProperty,
component.getOrCreateAttribute(beanProperty.getName()));