{
MetaDataNode node = unit.hostComponentMetaData;
if (node.count() == 1)
{
Node def = node.def;
if (def instanceof ClassDefinitionNode)
{
unit.expressions.add(NameFormatter.toMultiName(node.getValue(0)));
ClassDefinitionNode classDef = (ClassDefinitionNode) def;
if (!classDeclaresIdentifier(cx, classDef, typeAnalyzer, SKINHOSTCOMPONENT))
{
NodeFactory nodeFactory = cx.getNodeFactory();
MetaDataNode bindingMetaData = AbstractSyntaxTreeUtil.generateMetaData(nodeFactory, BINDABLE);
bindingMetaData.setId(BINDABLE);
StatementListNode statementList = nodeFactory.statementList(classDef.statements, bindingMetaData);
int listSize = node.def.metaData.items.size();
// if the HostComponent metadata node has more than one items.
// then look for the associated comment and stick it to the variable.
if (listSize > 1)
{
for (int ix = 0; ix < listSize; ix++)
{
// check if the node is of type MetaDataNode.
Node tempMeta = node.def.metaData.items.get(ix);
if (tempMeta instanceof MetaDataNode)
{
MetaDataNode tempMetaData = (MetaDataNode) tempMeta;
if ("HostComponent".equals(tempMetaData.getId()) && (ix < listSize - 1))
{
// if the node has the comment, it would be the next one.
Node temp = node.def.metaData.items.get(ix + 1);
// if the last one is a DocCommentnode, we can run it through the evaluator.
if (temp instanceof DocCommentNode)
{
DocCommentNode tempDoc = ((DocCommentNode)temp);