1 19 20 package org.netbeans.modules.xml.schema.ui.basic; 21 22 import org.netbeans.modules.xml.schema.model.SchemaComponent; 23 import org.netbeans.modules.xml.schema.model.SchemaModel; 24 import org.netbeans.modules.xml.xam.dom.AbstractDocumentComponent; 25 26 31 public class NameGenerator { 32 33 35 private static final String PREFIX_PREFIX = "ns"; 37 private static NameGenerator theInstance; 38 39 42 private NameGenerator() { 43 } 44 45 50 public static synchronized NameGenerator getInstance() { 51 if (theInstance == null) { 52 theInstance = new NameGenerator(); 53 } 54 return theInstance; 55 } 56 57 67 public String generateNamespacePrefix(String prefix, 68 SchemaModel model) { 69 return generateNamespacePrefix(prefix, model, 0); 71 } 72 73 83 public String generateNamespacePrefix(String prefix, 84 SchemaModel model, int counter) { 85 String prefixStr = prefix == null ? PREFIX_PREFIX : prefix; 86 String generated = prefixStr + counter; 87 while (isPrefixExist(generated, model)) { 88 counter++; 89 generated = prefixStr + counter; 90 } 91 return generated; 92 } 93 94 101 public static boolean isPrefixExist(String prefix, SchemaModel model) { 102 return getNamespaceURI(prefix, model) != null ? true : false; 103 } 104 105 112 public static String getNamespacePrefix(String namespace, 113 SchemaComponent element) { 114 if (element != null && namespace != null) { 115 return ((AbstractDocumentComponent) element).lookupPrefix(namespace); 116 } 117 return null; 118 } 119 120 127 public static String getNamespaceURI(String prefix, SchemaModel model) { 128 if (model != null && prefix != null) { 129 return ((AbstractDocumentComponent) model.getSchema()). 130 lookupNamespaceURI(prefix, true); 131 } 132 return null; 133 } 134 } 135 | Popular Tags |