in maven2-plugins/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/qdox/parse/ComponentParsingStrategy.java [71:202]
private void processComponent(Map props, AbstractJavaEntity ctx,
JavaClass clazz, Model model)
{
String componentTypeDflt = null;
JavaField fieldComponentType = clazz.getFieldByName("COMPONENT_TYPE");
if (fieldComponentType != null)
{
componentTypeDflt = QdoxHelper.clean(fieldComponentType
.getInitializationExpression());
}
String componentTypeFamily = null;
JavaField fieldComponentFamily = clazz
.getFieldByName("COMPONENT_FAMILY");
if (fieldComponentFamily != null)
{
componentTypeFamily = QdoxHelper.clean(fieldComponentFamily
.getInitializationExpression());
}
String rendererTypeDflt = null;
JavaField fieldRendererType = clazz
.getFieldByName("DEFAULT_RENDERER_TYPE");
if (fieldRendererType != null)
{
rendererTypeDflt = QdoxHelper.clean(fieldRendererType
.getInitializationExpression());
}
String componentName = QdoxHelper.getString(clazz, "name", props, null);
// Check for both "class" and "clazz" in order to support
// doclet and real annotations.
String classNameOverride = QdoxHelper.getString(clazz, "class", props, null);
classNameOverride = QdoxHelper.getString(clazz,"clazz",props,classNameOverride);
Boolean template = QdoxHelper.getBoolean(clazz,"template",props, null);
String longDescription = clazz.getComment();
String descDflt = QdoxHelper.getFirstSentence(longDescription);
if ((descDflt == null) || (descDflt.length() < 2))
{
descDflt = "no description";
}
String shortDescription = QdoxHelper.getString(clazz, "desc", props, descDflt);
String bodyContent = QdoxHelper.getString(clazz, "bodyContent", props, null);
String componentFamily = QdoxHelper.getString(clazz, "family", props,
componentTypeFamily);
String componentType = QdoxHelper.getString(clazz, "type", props,
componentTypeDflt);
String rendererType = QdoxHelper.getString(clazz, "defaultRendererType", props,
rendererTypeDflt);
Boolean canHaveChildren = QdoxHelper.getBoolean(clazz, "canHaveChildren", props, null);
Boolean configExcluded = QdoxHelper.getBoolean(clazz,"configExcluded",props,null);
String tagClass = QdoxHelper.getString(clazz, "tagClass", props, null);
String tagSuperclass = QdoxHelper.getString(clazz, "tagSuperclass", props, null);
String tagHandler = QdoxHelper.getString(clazz, "tagHandler", props, null);
String defaultEventName = QdoxHelper.getString(clazz, "defaultEventName", props, null);
String serialuid = QdoxHelper.getString(clazz, "serialuid", props, null);
String implementsValue = QdoxHelper.getString(clazz, "implements", props, null);
implementsValue = QdoxHelper.getString(clazz, "implementz", props, implementsValue);
Boolean composite = QdoxHelper.getBoolean(clazz, "composite", props, null);
ComponentMeta component = new ComponentMeta();
initClassMeta(model, clazz, component, classNameOverride);
component.setName(componentName);
component.setBodyContent(bodyContent);
component.setDescription(shortDescription);
component.setLongDescription(longDescription);
component.setConfigExcluded(configExcluded);
component.setType(componentType);
component.setFamily(componentFamily);
component.setRendererType(rendererType);
component.setChildren(canHaveChildren);
component.setSerialuid(serialuid);
component.setImplements(implementsValue);
component.setTemplate(template);
component.setDefaultEventName(defaultEventName);
if (defaultEventName != null)
{
component.setOverrideDefaultEventName(Boolean.TRUE);
}
JavaClass[] interfaces = clazz.getImplementedInterfaces();
for (int i = 0; i < interfaces.length; ++i)
{
JavaClass iface = interfaces[i];
if (iface.getFullyQualifiedName().equals(
"jakarta.faces.component.NamingContainer"))
{
component.setNamingContainer(Boolean.TRUE);
break;
}
if (iface.getFullyQualifiedName().equals(
"jakarta.faces.component.behavior.ClientBehaviorHolder"))
{
component.setClientBehaviorHolder(Boolean.TRUE);
break;
}
if (!(template != null && template.booleanValue()))
{
component.addImplementedInterfaceClassName(
QdoxHelper.getFullyQualifiedClassName(iface, iface.getFullyQualifiedName()));
}
}
if (implementsValue != null)
{
if (StringUtils.contains(implementsValue, "jakarta.faces.component.behavior.ClientBehaviorHolder"))
{
component.setClientBehaviorHolder(Boolean.TRUE);
}
StringTokenizer st = new StringTokenizer(implementsValue,",");
while (st.hasMoreTokens())
{
component.addImplementedInterfaceClassName(st.nextToken());
}
}
component.setTagClass(tagClass);
component.setTagSuperclass(tagSuperclass);
component.setTagHandler(tagHandler);
component.setComposite(composite);
// Now here walk the component looking for property annotations.
processComponentProperties(clazz, component);
processComponentFacets(clazz, component);
processComponentListeners(clazz, component);
model.addComponent(component);
}