1 19 20 26 package org.netbeans.modules.xml.wsdl.ui.view.treeeditor; 27 28 import java.util.Iterator ; 29 import java.util.List ; 30 31 import org.netbeans.modules.xml.schema.model.AnyAttribute; 32 import org.netbeans.modules.xml.schema.model.Attribute; 33 import org.netbeans.modules.xml.schema.model.Element; 34 import org.netbeans.modules.xml.wsdl.model.WSDLComponent; 35 import org.netbeans.modules.xml.wsdl.ui.cookies.WSDLDefinitionNodeCookie; 36 import org.netbeans.modules.xml.wsdl.ui.schema.visitor.AbstractXSDVisitor; 37 import org.netbeans.modules.xml.wsdl.ui.schema.visitor.SchemaElementAttributeFinderVisitor; 38 import org.netbeans.modules.xml.xam.Nameable; 39 import org.openide.nodes.Node; 40 import org.w3c.dom.NamedNodeMap ; 41 42 43 44 50 public class Utils { 51 52 public static WSDLDefinitionNodeCookie getWSDLDefinitionNodeCookie(Node node) { 53 Node parent = node; 54 if(parent != null) { 55 while(parent != null) { 56 WSDLDefinitionNodeCookie cookie = (WSDLDefinitionNodeCookie) parent.getCookie(WSDLDefinitionNodeCookie.class); 57 if(cookie != null) { 58 return cookie; 59 } else { 60 parent = parent.getParentNode(); 61 } 62 } 63 } 64 65 return null; 66 } 67 68 public static boolean isMissingAttributes(WSDLComponent element, Element schemaElement) { 69 boolean result = false; 70 71 NamedNodeMap elementAttrs = element.getPeer().getAttributes(); 75 SchemaElementAttributeFinderVisitor seaFinder = new SchemaElementAttributeFinderVisitor(schemaElement); 76 schemaElement.accept(seaFinder); 77 List <Attribute> attrs = seaFinder.getAttributes(); 78 Iterator <Attribute> it = attrs.iterator(); 79 while(it.hasNext()) { 80 Attribute attr = it.next(); 81 Nameable namedAttr = (Nameable) attr; 82 if(elementAttrs.getNamedItem(namedAttr.getName())== null) { 85 result = true; 86 break; 87 } 88 } 89 90 return result; 91 } 92 93 public static boolean isExtensionAttributesAllowed(Element element) { 94 AnyAttributesVisitor visitor = new AnyAttributesVisitor(); 95 element.accept(visitor); 96 return visitor.isExtensionAttributesAllowed(); 97 } 98 99 100 101 102 } 103 104 class AnyAttributesVisitor extends AbstractXSDVisitor{ 105 private boolean hasAnyAttributes = false; 106 @Override 107 public void visit(AnyAttribute anyAttr) { 108 hasAnyAttributes = true; 109 } 110 public boolean isExtensionAttributesAllowed() { 111 return hasAnyAttributes; 112 } 113 }; 114 | Popular Tags |