1 19 20 package org.netbeans.modules.xml.schema.model.impl; 21 22 import org.netbeans.modules.xml.schema.model.ReferenceableSchemaComponent; 23 import org.netbeans.modules.xml.xam.dom.AbstractNamedComponentReference; 24 import org.netbeans.modules.xml.xam.dom.NamedComponentReference; 25 26 34 public class GlobalReferenceImpl<T extends ReferenceableSchemaComponent> extends AbstractNamedComponentReference<T> 35 implements NamedComponentReference<T> { 36 37 public GlobalReferenceImpl(T target, Class <T> cType, SchemaComponentImpl parent) { 39 super(target, cType, parent); 40 } 41 42 public GlobalReferenceImpl(Class <T> classType, SchemaComponentImpl parent, String refString){ 44 super(classType, parent, refString); 45 } 46 47 public T get() { 48 if (getReferenced() == null) { 49 String namespace = getQName().getNamespaceURI(); 50 namespace = namespace.length() == 0 ? null : namespace; 51 String localName = getLocalName(); 52 T target = ((SchemaComponentImpl)getParent()).getModel().resolve(namespace, localName, getType()); 53 setReferenced(target); 54 } 55 return getReferenced(); 56 } 57 58 public SchemaComponentImpl getParent() { 59 return (SchemaComponentImpl) super.getParent(); 60 } 61 62 public String getEffectiveNamespace() { 63 return getParent().getModel().getEffectiveNamespace(get()); 64 } 65 } 66 | Popular Tags |