1 19 package org.netbeans.modules.xml.wsdl.ui.completion; 20 21 import javax.xml.XMLConstants ; 22 23 import org.netbeans.modules.xml.schema.completion.spi.CompletionContext; 24 import org.netbeans.modules.xml.schema.completion.spi.CompletionModelProvider; 25 import org.netbeans.modules.xml.schema.model.SchemaModel; 26 27 28 public class WSDLCompletionModel extends CompletionModelProvider.CompletionModel { 29 30 private final CompletionContext context; 31 private final SchemaModel schemaModel; 32 private String suggestedPrefix; 33 34 public WSDLCompletionModel(CompletionContext context, SchemaModel schemaModel, String suggestedPrefix) { 35 this.context = context; 36 this.schemaModel = schemaModel; 37 this.suggestedPrefix = suggestedPrefix; 38 39 } 40 41 @Override 42 public String getSuggestedPrefix() { 43 if(suggestedPrefix == null) { 44 this.suggestedPrefix = getSuggestedPrefix("ns", getTargetNamespace()); } 47 return suggestedPrefix; 48 } 49 50 @Override 51 public SchemaModel getSchemaModel() { 52 return schemaModel; 53 } 54 55 @Override 56 public String getTargetNamespace() { 57 return schemaModel.getSchema().getTargetNamespace(); 58 } 59 60 private String getSuggestedPrefix(String prefix, String tns) { 61 String newPrefix = prefix; 62 String nsDecl = XMLConstants.XMLNS_ATTRIBUTE+":"+newPrefix; 63 int i = 0; 64 while(context.getDeclaredNamespaces().get(nsDecl) != null) { 65 String ns = context.getDeclaredNamespaces().get(nsDecl); 66 if(ns.equals(tns)) 67 return null; 68 newPrefix = newPrefix + i; nsDecl = XMLConstants.XMLNS_ATTRIBUTE+":"+newPrefix; 70 i++; 71 } 72 return newPrefix; 73 } 74 75 } 76 | Popular Tags |