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