package com.sun.sps.modeler.files.catalog; import java.awt.Image; import java.beans.PropertyChangeListener; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.netbeans.modules.xml.catalog.spi.CatalogDescriptor; import org.netbeans.modules.xml.catalog.spi.CatalogListener; import org.netbeans.modules.xml.catalog.spi.CatalogReader; import org.openide.util.NbBundle; import org.openide.util.Utilities; import org.xml.sax.EntityResolver; import org.xml.sax.InputSource; import org.xml.sax.SAXException; /** * Catalog to register Provisioning Schema files * * @author Rohan Ranade (Rohan.Ranade@Sun.COM) */ public class ProvisioningCatalog implements CatalogReader, CatalogDescriptor, EntityResolver { private static final String SPS_COMPONENT_XSD = "component.xsd"; private static final String SPS_COMPONENT = "http://www.sun.com/schema/SPS/component.xsd"; private static final String SPS_COMPONENT_URL = "nbres:/com/sun/sps/modeler/files/catalog/resources/component.xsd"; private static final String SPS_COMPONENT_ID = "SCHEMA:" + SPS_COMPONENT; private static final String SPS_PLAN_XSD = "plan.xsd"; private static final String SPS_PLAN = "http://www.sun.com/schema/SPS/plan.xsd"; private static final String SPS_PLAN_URL = "nbres:/com/sun/sps/modeler/files/catalog/resources/plan.xsd"; private static final String SPS_PLAN_ID = "SCHEMA:" + SPS_PLAN; private static final String SPS_PLUGIN_XSD = "plugin.xsd"; private static final String SPS_PLUGIN = "http://www.sun.com/schema/SPS/plugin.xsd"; private static final String SPS_PLUGIN_URL = "nbres:/com/sun/sps/modeler/files/catalog/resources/plugin.xsd"; private static final String SPS_PLUGIN_ID = "SCHEMA:" + SPS_PLUGIN; private static final String SPS_PLUGIN_UI_XSD = "pluginUI.xsd"; private static final String SPS_PLUGIN_UI = "http://www.sun.com/schema/SPS/pluginUI.xsd"; private static final String SPS_PLUGIN_UI_URL = "nbres:/com/sun/sps/modeler/files/catalog/resources/pluginUI.xsd"; private static final String SPS_PLUGIN_UI_ID = "SCHEMA:" + SPS_PLUGIN_UI; /** * Creates a new instance of ProvisioningCatalog */ public ProvisioningCatalog() { } public Iterator getPublicIDs() { List list = new ArrayList(); list.add(SPS_COMPONENT_ID); list.add(SPS_PLAN_ID); list.add(SPS_PLUGIN_ID); list.add(SPS_PLUGIN_UI_ID); return list.listIterator(); } public void refresh() { // Nothing for now } public String getSystemID(String publicId) { if(publicId.equals(SPS_COMPONENT_ID)) { return SPS_COMPONENT_URL; } else if(publicId.equals(SPS_PLAN_ID)) { return SPS_PLAN_URL; } else if(publicId.equals(SPS_PLUGIN_ID)) { return SPS_PLUGIN_URL; } else if(publicId.equals(SPS_PLUGIN_UI_ID)) { return SPS_PLUGIN_UI_URL; } else { return null; } } public String resolveURI(String string) { return null; } public String resolvePublic(String string) { return null; } public void addCatalogListener(CatalogListener catalogListener) { // Nothing for now } public void removeCatalogListener(CatalogListener catalogListener) { // Nothing for now } public Image getIcon(int i) { return Utilities.loadImage("com/sun/sps/modeler/files/catalog/resources/schemafiles.png"); // NOI18N } public String getDisplayName() { return NbBundle.getMessage(ProvisioningCatalog.class, "LBL_ProvisioningCatalog"); } public String getShortDescription() { return NbBundle.getMessage(ProvisioningCatalog.class, "DESC_ProvisioningCatalog"); } public void addPropertyChangeListener(PropertyChangeListener propertyChangeListener) { // Nothing for now } public void removePropertyChangeListener(PropertyChangeListener propertyChangeListener) { // Nothing for now } public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { if (SPS_COMPONENT.equals(systemId)){ return new org.xml.sax.InputSource(SPS_COMPONENT_URL); } if (systemId != null && systemId.endsWith(SPS_COMPONENT_XSD)){ return new org.xml.sax.InputSource(SPS_COMPONENT_URL); } if(SPS_PLAN.equals(systemId)) { return new org.xml.sax.InputSource(SPS_PLAN_URL); } if (systemId != null && systemId.endsWith(SPS_PLAN_XSD)){ return new org.xml.sax.InputSource(SPS_PLAN_URL); } if (SPS_PLUGIN.equals(systemId)){ return new org.xml.sax.InputSource(SPS_PLUGIN_URL); } if (systemId != null && systemId.endsWith(SPS_PLUGIN_XSD)){ return new org.xml.sax.InputSource(SPS_PLUGIN_URL); } if (SPS_PLUGIN_UI.equals(systemId)){ return new org.xml.sax.InputSource(SPS_PLUGIN_UI_URL); } if (systemId != null && systemId.endsWith(SPS_PLUGIN_UI_XSD)){ return new org.xml.sax.InputSource(SPS_PLUGIN_UI_URL); } return null; } }