1 19 package org.netbeans.modules.xml.retriever.catalog.model; 20 21 import java.io.IOException ; 22 import javax.swing.text.BadLocationException ; 23 import javax.swing.text.Document ; 24 import org.netbeans.modules.xml.xam.AbstractModelFactory; 25 import org.netbeans.modules.xml.xam.ModelSource; 26 import org.netbeans.modules.xml.retriever.catalog.model.impl.CatalogModelImpl; 27 28 public class CatalogModelFactory extends AbstractModelFactory<CatalogModel> { 29 32 private CatalogModelFactory() { 33 } 34 35 private static CatalogModelFactory instance = new CatalogModelFactory(); 36 37 public static CatalogModelFactory getInstance() { 38 return instance; 39 } 40 41 protected CatalogModel createModel(ModelSource source) { 42 return new CatalogModelImpl(source); 43 } 44 45 public static final String CATALOG_TEMPLATE = "<?xml version=\"1.0\" encoding=\"UTF-8\"" 46 +" standalone=\"no\"?>"+"\n"+ 47 "<catalog xmlns=\"urn:oasis:names:tc:entity:xmlns:xml:catalog\" prefer=\"system\"/>"; 48 49 public CatalogModel getModel(ModelSource source) { 50 Document doc = (Document ) source.getLookup().lookup(Document .class); 51 if( (doc != null) && doc.getLength() <= 5){ 52 try { 54 doc.remove(0, doc.getLength()); 55 doc.insertString(0, CATALOG_TEMPLATE, null); 56 } catch (BadLocationException ex) { 57 return null; 58 } 59 } 60 61 CatalogModel cm =(CatalogModel) super.getModel(source); 62 try { 63 cm.sync(); 64 } catch (IOException ex) { 65 } 66 return cm; 67 } 68 } 69 | Popular Tags |