1 19 20 package org.netbeans.modules.xml.wsdl.ui.view; 21 22 import java.util.Map ; 23 24 import javax.xml.namespace.QName ; 25 26 import org.netbeans.modules.xml.schema.model.GlobalElement; 27 import org.netbeans.modules.xml.schema.model.GlobalType; 28 import org.netbeans.modules.xml.wsdl.ui.actions.NameGenerator; 29 import org.openide.util.NbBundle; 30 31 public class ElementOrType { 32 GlobalElement mElement; 33 GlobalType mType; 34 QName mQName; 35 boolean isElement; 36 Map <String , String > namespaceToPrefixMap; 37 String namespacePrefix; 38 String localPart; 39 40 public ElementOrType(GlobalElement ele, Map <String , String > namespaceToPrefixMap) { 41 mElement = ele; 42 this.namespaceToPrefixMap = namespaceToPrefixMap; 43 namespacePrefix = generateNamespacePrefixIfNotPresent(mElement.getModel().getSchema().getTargetNamespace()); 44 localPart = mElement.getName(); 45 } 46 47 48 49 public ElementOrType(GlobalType type, Map <String , String > namespaceToPrefixMap) { 50 mType = type; 51 this.namespaceToPrefixMap = namespaceToPrefixMap; 52 namespacePrefix = generateNamespacePrefixIfNotPresent(mType.getModel().getSchema().getTargetNamespace()); 53 localPart = mType.getName(); 54 } 55 56 57 public boolean isElement() { 58 return mElement != null; 59 } 60 61 public GlobalElement getElement() { 62 return mElement; 63 } 64 65 public GlobalType getType() { 66 return mType; 67 } 68 69 @Override 70 public String toString() { 71 if (namespacePrefix == null) 72 return localPart; 73 return namespacePrefix + ":" + localPart; 74 } 75 76 77 public String generateNamespacePrefix(String optionalPrefixNameString) { 78 String prefix = null; 79 if(optionalPrefixNameString == null) { 80 optionalPrefixNameString = NbBundle.getMessage(NameGenerator.class, "NameGenerator_DEFAULT_PREFIX"); 81 } 82 83 int prefixCounter = 0; 84 String prefixStr = optionalPrefixNameString; 85 prefix = prefixStr; 86 87 while(namespaceToPrefixMap.containsValue(prefix)) { 88 prefix = prefixStr + prefixCounter++; 89 } 90 91 92 93 return prefix; 94 } 95 96 private String generateNamespacePrefixIfNotPresent(String namespace) { 97 String nsPrefix = namespaceToPrefixMap.get(namespace); 98 if (nsPrefix == null) { 99 nsPrefix = generateNamespacePrefix(null); 100 namespaceToPrefixMap.put(namespace, nsPrefix); 101 } 102 return nsPrefix; 103 } 104 105 } 116 | Popular Tags |