private void inspectExtension(ISchema schema, IPluginParent parent, IFile file) { IPluginObject[] children = parent.getChildren(); if (parent instanceof PluginElementNode && parent.getParent() instanceof PluginElementNode) { // check if this node corresponds to a Java type attribute which would have been defined has // an element PluginElementNode node = (PluginElementNode) parent; PluginElementNode parentNode = (PluginElementNode) parent.getParent(); ISchemaElement schemaElement = schema.findElement(parentNode.getName()); if (schemaElement != null) { ISchemaAttribute attInfo = schemaElement.getAttribute(node.getName()); if (attInfo != null && attInfo.getKind() == IMetaAttribute.JAVA) checkMatch(node.getAttribute("class"), file); // $NON-NLS-1$ } } for (int i = 0; i < children.length; i++) { IPluginElement child = (IPluginElement) children[i]; ISchemaElement schemaElement = schema.findElement(child.getName()); if (schemaElement != null) { IPluginAttribute[] attributes = child.getAttributes(); for (int j = 0; j < attributes.length; j++) { IPluginAttribute attr = attributes[j]; ISchemaAttribute attInfo = schemaElement.getAttribute(attr.getName()); if (attInfo != null && attInfo.getKind() == IMetaAttribute.JAVA && attr instanceof IDocumentAttributeNode) checkMatch(attr, file); } } inspectExtension(schema, child, file); } }