1 19 20 package org.netbeans.modules.xml.wsdl.model.impl; 21 22 import java.util.ArrayList ; 23 import java.util.Collection ; 24 import java.util.List ; 25 import org.netbeans.modules.xml.schema.model.Schema; 26 import org.netbeans.modules.xml.wsdl.model.Types; 27 import org.netbeans.modules.xml.wsdl.model.WSDLModel; 28 import org.netbeans.modules.xml.wsdl.model.extensions.xsd.WSDLSchema; 29 import org.netbeans.modules.xml.wsdl.model.extensions.xsd.impl.WSDLSchemaImpl; 30 import org.netbeans.modules.xml.wsdl.model.spi.WSDLComponentBase; 31 import org.netbeans.modules.xml.wsdl.model.visitor.WSDLVisitor; 32 import org.w3c.dom.Element ; 33 import org.w3c.dom.Node ; 34 35 39 public class TypesImpl extends WSDLComponentBase implements Types{ 40 41 42 public TypesImpl(WSDLModel model, Element e) { 43 super(model, e); 44 } 45 public TypesImpl(WSDLModel model) { 46 this(model, createNewElement(WSDLQNames.TYPES.getQName(), model)); 47 } 48 49 public void accept(WSDLVisitor visitor) { 50 visitor.visit(this); 51 } 52 53 public Collection <Schema> getSchemas(){ 54 List <Schema> schemas = new ArrayList <Schema>(); 56 List <WSDLSchema> wsdlSchemas = getExtensibilityElements(WSDLSchema.class); 57 58 for(WSDLSchema wsdlSchema : wsdlSchemas){ 59 schemas.add(wsdlSchema.getSchemaModel().getSchema()); 60 } 61 return schemas; 62 } 63 64 @Override 65 protected <N extends Node > void updateReference(Element peer, List <N> pathToRoot) { 66 super.updateReference(peer, pathToRoot); 67 int iPeer = pathToRoot.indexOf(peer); 68 assert iPeer > -1 : "Provided peer is outside context path"; 69 if (iPeer > 0) { 70 for (WSDLSchema wschema : getExtensibilityElements(WSDLSchema.class)) { 71 Schema schema = wschema.getSchemaModel().getSchema(); 72 if (schema.referencesSameNode(pathToRoot.get(iPeer-1))) { 73 ((WSDLSchemaImpl)wschema).updateReference(schema.getPeer()); 74 break; 75 } 76 } 77 } 78 } 79 } 80 | Popular Tags |