1 19 20 package org.netbeans.modules.xml.wsdl.ui.wizard; 21 22 import javax.xml.namespace.QName ; 23 24 import org.netbeans.modules.xml.wsdl.model.ExtensibilityElement; 25 import org.netbeans.modules.xml.wsdl.model.PortType; 26 import org.netbeans.modules.xml.wsdl.model.WSDLModel; 27 import org.netbeans.modules.xml.wsdl.model.extensions.bpel.BPELQName; 28 import org.netbeans.modules.xml.wsdl.ui.actions.NameGenerator; 29 import org.netbeans.modules.xml.xam.dom.AbstractDocumentComponent; 30 31 35 public class PartnerLinkTypeGenerator implements Command { 36 37 private PortType mPortType; 38 39 private WSDLModel mModel; 40 41 private ExtensibilityElement mPartnerLinkTypeElement = null; 42 43 private static final QName partnerLinkTypeQName = BPELQName.PARTNER_LINK_TYPE.getQName(); 44 private static final QName partnerLinkTypeRoleQName = BPELQName.ROLE.getQName(); 45 46 47 public PartnerLinkTypeGenerator(PortType portType, WSDLModel model) { 48 this.mPortType = portType; 49 this.mModel = model; 50 } 51 52 public ExtensibilityElement getPartnerLinkType() { 53 return mPartnerLinkTypeElement; 54 } 55 56 public void execute() { 57 String portTypeName = this.mPortType.getName(); 58 String wsdlDefinitionName = this.mModel.getDefinitions().getName(); 59 60 if(portTypeName != null && wsdlDefinitionName != null) { 61 String portTypeNamespace = this.mPortType.getModel().getDefinitions().getTargetNamespace(); 62 if(portTypeNamespace != null) { 63 String prefix = ((AbstractDocumentComponent) this.mModel.getDefinitions()).lookupPrefix(portTypeNamespace); 64 if(prefix != null) { 65 ExtensibilityElement partnerLinkType = (ExtensibilityElement) this.mModel.getFactory().create(this.mModel.getDefinitions(), partnerLinkTypeQName); 66 ExtensibilityElement partnerLinkTypeRole = (ExtensibilityElement) this.mModel.getFactory().create(partnerLinkType, partnerLinkTypeRoleQName); 67 partnerLinkType.addExtensibilityElement(partnerLinkTypeRole); 68 69 String partnerLinkTypeName = NameGenerator.getInstance().generateUniquePartnerLinkType(wsdlDefinitionName, partnerLinkTypeQName, this.mModel); 70 if(partnerLinkTypeName != null) { 71 partnerLinkType.setAttribute("name", partnerLinkTypeName); partnerLinkTypeRole.setAttribute("name", portTypeName + "Role"); partnerLinkTypeRole.setAttribute("portType", prefix + ":" + portTypeName); mPartnerLinkTypeElement = partnerLinkType; 75 } 76 } 77 } 78 } 79 80 81 } 82 83 84 85 } 86 | Popular Tags |