1 19 20 28 29 package org.netbeans.modules.xml.wsdl.ui.api.property; 30 31 import java.util.ArrayList ; 32 import java.util.Collection ; 33 import java.util.List ; 34 35 import javax.xml.namespace.QName ; 36 37 import org.netbeans.modules.xml.wsdl.model.Binding; 38 import org.netbeans.modules.xml.wsdl.model.Definitions; 39 import org.netbeans.modules.xml.wsdl.model.Message; 40 import org.netbeans.modules.xml.wsdl.model.PortType; 41 import org.netbeans.modules.xml.wsdl.model.WSDLModel; 42 import org.netbeans.modules.xml.wsdl.ui.netbeans.module.Utility; 43 44 48 public class PropertyUtil { 49 private static final String COLON = ":"; 51 public PropertyUtil() { 52 } 53 54 public static String [] getAllPortTypes(WSDLModel model, boolean includeBlankItem) { 55 ArrayList <String > portTypesList = new ArrayList <String >(); 56 if (includeBlankItem) { 57 portTypesList.add(""); 58 } 59 60 portTypesList.addAll(getAllAvailablePortTypes(model, model)); 62 63 for (WSDLModel imported : Utility.getImportedDocuments(model)) { 65 portTypesList.addAll(getAllAvailablePortTypes(model, imported)); 66 } 67 68 return portTypesList.toArray(new String [portTypesList.size()]); 69 } 70 71 72 private static List <String > getAllAvailablePortTypes(WSDLModel source, WSDLModel document) { 73 ArrayList <String > portTypesList = new ArrayList <String >(); 74 75 Definitions definition = document.getDefinitions(); 76 77 for (PortType portType : definition.getPortTypes()) { 78 String name = portType.getName(); 79 String targetNamespace = document.getDefinitions().getTargetNamespace(); 80 String prefix = Utility.getNamespacePrefix(targetNamespace, source); 81 if(name != null) { 82 if(prefix != null) { 83 String portTypeQNameStr = prefix + COLON + name; 84 portTypesList.add(portTypeQNameStr); 85 } else { 86 portTypesList.add(name); 87 } 88 } 89 } 90 91 return portTypesList; 92 } 93 94 public static String [] getAllMessages(WSDLModel model) { 95 ArrayList <String > messageList = new ArrayList <String >(); 96 98 messageList.addAll(getAllAvailableMessages(model, model)); 100 101 Collection <WSDLModel> allWsdls = Utility.getImportedDocuments(model); 103 if (allWsdls != null) { 104 for (WSDLModel doc : allWsdls) { 105 messageList.addAll(getAllAvailableMessages(model, doc)); 106 107 } 108 } 109 return messageList.toArray(new String [messageList.size()]); 110 } 111 112 private static List <String > getAllAvailableMessages(WSDLModel source, WSDLModel document) { 113 ArrayList <String > messageList = new ArrayList <String >(); 114 115 Definitions definition = document.getDefinitions(); 116 for (Message msg : definition.getMessages()) { 117 String name = msg.getName(); 118 String targetNamespace = definition.getTargetNamespace(); 119 String prefix = Utility.getNamespacePrefix(targetNamespace, source); 120 if(name != null) { 121 if(prefix != null) { 122 String messageQNameStr = prefix + COLON + name; 123 messageList.add(messageQNameStr); 124 } else { 125 messageList.add(name); 126 } 127 } 128 129 } 130 131 return messageList; 132 } 133 134 135 public static String [] getAllBindings(WSDLModel model) { 136 ArrayList <String > bindingList = new ArrayList <String >(); 137 bindingList.add(""); 138 139 bindingList.addAll(getAllBindings(model, model)); 141 142 for (WSDLModel doc : Utility.getImportedDocuments(model)) { 144 bindingList.addAll(getAllBindings(model, doc)); 145 } 146 147 return bindingList.toArray(new String [bindingList.size()]); 148 } 149 150 private static List <String > getAllBindings(WSDLModel source, WSDLModel document) { 151 ArrayList <String > bindingList = new ArrayList <String >(); 152 153 Definitions definition = document.getDefinitions(); 154 155 for (Binding binding : definition.getBindings()) { 156 String name = binding.getName(); 157 String targetNamespace = definition.getTargetNamespace(); 158 String prefix = Utility.getNamespacePrefix(targetNamespace, source); 159 if(name != null) { 160 if(prefix != null) { 161 String messageQNameStr = prefix + COLON + name; 162 bindingList.add(messageQNameStr); 163 } else { 164 bindingList.add(name); 165 } 166 } 167 168 } 169 170 return bindingList; 171 } 172 173 public static Message getMessage(MessageProvider prov, WSDLModel model) { 174 Message msg = prov.getWSDLMessage(); 175 if (msg != null) { 176 return msg; 177 } 178 179 String messageName = prov.getMessage(); 180 if (messageName == null) { 181 return null; 182 } 183 String [] qnameParts = messageName.split(COLON); 184 String prefix = ""; 185 String localPart = messageName; 186 if (qnameParts.length > 1) { 187 prefix = qnameParts[0]; 188 localPart = qnameParts[1]; 189 } 190 String ns = Utility.getNamespaceURI(prefix, model); 191 if (ns != null) { 192 return model.findComponentByName(new QName (ns, localPart), Message.class); 193 } 194 return model.findComponentByName(localPart, Message.class); 195 } 196 } 197 | Popular Tags |