1 19 package org.sample.registry.model.impl; 20 21 import java.util.Set ; 22 import javax.xml.namespace.QName ; 23 import org.netbeans.modules.xml.xam.ComponentUpdater; 24 import org.netbeans.modules.xml.xam.ModelSource; 25 import org.netbeans.modules.xml.xam.dom.AbstractDocumentModel; 26 import org.sample.registry.model.Registry; 27 import org.sample.registry.model.RegistryCommon; 28 import org.sample.registry.model.RegistryComponent; 29 import org.sample.registry.model.RegistryComponentFactory; 30 import org.sample.registry.model.RegistryModel; 31 import org.w3c.dom.Element ; 32 33 public class RegistryModelImpl extends AbstractDocumentModel<RegistryComponent> implements RegistryModel { 34 private RegistryComponentFactory factory; 35 private RegistryCommon registry; 36 37 public RegistryModelImpl(ModelSource source) { 38 super(source); 39 factory = new RegistryComponentFactoryImpl(this); 40 } 41 42 public RegistryCommon getRootComponent() { 43 return registry; 44 } 45 46 protected ComponentUpdater<RegistryComponent> getComponentUpdater() { 47 return new SyncUpdateVisitor(); 48 } 49 50 public RegistryComponent createComponent(RegistryComponent parent, Element element) { 51 return getFactory().create(element, parent); 52 } 53 54 public RegistryCommon createRootComponent(Element root) { 55 RegistryCommon newRegistry = (RegistryCommon) getFactory().create(root, null); 56 if (newRegistry != null) { 57 registry = newRegistry; 58 } 59 return newRegistry; 60 } 61 62 public RegistryComponentFactory getFactory() { 63 return factory; 64 } 65 66 public Set <QName > getQNames() { 67 return RegistryQNames.getMappedQNames(); 68 } 69 70 } 71 | Popular Tags |