Search in sources :

Example 1 with ICatalogEntry

use of org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry in project webtools.sourceediting by eclipse.

the class GlobalCMDocumentCache method getSystemCatalogEntries.

private static synchronized HashMap getSystemCatalogEntries() {
    HashMap systemCatalogURIs = new HashMap();
    ICatalog systemCatalog = null;
    ICatalog defaultCatalog = XMLCorePlugin.getDefault().getDefaultXMLCatalog();
    INextCatalog[] nextCatalogs = defaultCatalog.getNextCatalogs();
    for (int i = 0; i < nextCatalogs.length; i++) {
        INextCatalog catalog = nextCatalogs[i];
        ICatalog referencedCatalog = catalog.getReferencedCatalog();
        if (referencedCatalog != null) {
            if (XMLCorePlugin.SYSTEM_CATALOG_ID.equals(referencedCatalog.getId())) {
                systemCatalog = referencedCatalog;
            }
        }
    }
    if (systemCatalog != null) {
        ICatalogEntry[] catalogEntries = systemCatalog.getCatalogEntries();
        for (int i = 0; i < catalogEntries.length; i++) {
            systemCatalogURIs.put(catalogEntries[i].getURI(), new SoftReference(null));
        }
    }
    return systemCatalogURIs;
}
Also used : SoftReference(java.lang.ref.SoftReference) HashMap(java.util.HashMap) INextCatalog(org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog) ICatalogEntry(org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry) ICatalog(org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog)

Example 2 with ICatalogEntry

use of org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry in project webtools.sourceediting by eclipse.

the class SelectXMLCatalogIdPanel method getXMLCatalogEntry.

public ICatalogEntry getXMLCatalogEntry() {
    ICatalogEntry result = null;
    ISelection selection = tableViewer.getSelection();
    Object selectedObject = (selection instanceof IStructuredSelection) ? ((IStructuredSelection) selection).getFirstElement() : null;
    if (selectedObject instanceof ICatalogEntry) {
        result = (ICatalogEntry) selectedObject;
    }
    return result;
}
Also used : ISelection(org.eclipse.jface.viewers.ISelection) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) ICatalogEntry(org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry)

Example 3 with ICatalogEntry

use of org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry in project webtools.sourceediting by eclipse.

the class SelectXMLCatalogIdPanel method createTableViewer.

protected XMLCatalogTableViewer createTableViewer(Composite parent) {
    String[] headings = new String[2];
    headings[0] = XMLUIMessages._UI_LABEL_KEY;
    headings[1] = XMLUIMessages._UI_LABEL_URI;
    XMLCatalogTableViewer theTableViewer = new XMLCatalogTableViewer(parent, headings) {

        protected void addXMLCatalogEntries(List list, ICatalogEntry[] entries) {
            for (int i = 0; i < entries.length; i++) {
                ICatalogEntry entry = entries[i];
                if (catalogEntryType == 0) {
                    list.add(entry);
                } else if (catalogEntryType == entry.getEntryType()) {
                    list.add(entry);
                }
            }
        }

        public Collection getXMLCatalogEntries() {
            List result = null;
            if ((fXmlCatalog == null) || doTableSizeHack) {
                // this lets us create a table with an initial height of
                // 10 rows
                // otherwise we get stuck with 0 row heigh table... that's
                // too small
                doTableSizeHack = false;
                result = new Vector();
                for (int i = 0; i < 6; i++) {
                    // $NON-NLS-1$
                    result.add("");
                }
            } else {
                result = new Vector();
                processCatalog(result, fXmlCatalog);
            }
            return result;
        }

        private void processCatalog(List result, ICatalog catalog) {
            addXMLCatalogEntries(result, catalog.getCatalogEntries());
            INextCatalog[] nextCatalogs = catalog.getNextCatalogs();
            for (int i = 0; i < nextCatalogs.length; i++) {
                ICatalog nextCatalog = nextCatalogs[i].getReferencedCatalog();
                if (nextCatalog != null) {
                    processCatalog(result, nextCatalog);
                }
            }
        }
    };
    return theTableViewer;
}
Also used : INextCatalog(org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog) List(java.util.List) ICatalogEntry(org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry) Vector(java.util.Vector) ICatalog(org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog)

Example 4 with ICatalogEntry

use of org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry in project webtools.sourceediting by eclipse.

the class CatalogReaderTest method testReadCatalog.

/*
	 * Class under test for void read(ICatalog, String)
	 */
public void testReadCatalog() throws Exception {
    // read catalog
    String catalogFile = "/data/catalog1.xml";
    URL catalogUrl = TestPlugin.getDefault().getBundle().getEntry(catalogFile);
    assertNotNull(catalogUrl);
    URL base = FileLocator.resolve(catalogUrl);
    Catalog catalog = (Catalog) getCatalog("catalog1", base.toString());
    // CatalogReader.read(catalog, catalogFilePath);
    assertNotNull(catalog);
    // test main catalog - catalog1.xml
    // assertEquals("cat1", catalog.getId());
    assertEquals(3, catalog.getCatalogEntries().length);
    // test public entries
    List entries = CatalogTest.getCatalogEntries(catalog, ICatalogEntry.ENTRY_TYPE_PUBLIC);
    assertEquals(1, entries.size());
    ICatalogEntry entry = (ICatalogEntry) entries.get(0);
    // String resolvedURI = URIHelper.makeAbsolute(base, "./Invoice/Invoice.dtd");
    assertEquals(getFileLocation("/data/Invoice/Invoice.dtd"), entry.getURI());
    assertEquals("InvoiceId_test", entry.getKey());
    assertEquals("http://webURL", entry.getAttributeValue("webURL"));
    // test system entries
    entries = CatalogTest.getCatalogEntries(catalog, ICatalogEntry.ENTRY_TYPE_SYSTEM);
    assertEquals(1, entries.size());
    entry = (ICatalogEntry) entries.get(0);
    assertEquals(getFileLocation("/data/Invoice/Invoice.dtd"), entry.getURI());
    assertEquals("Invoice.dtd", entry.getKey());
    assertEquals("yes", entry.getAttributeValue("chached"));
    assertEquals("value1", entry.getAttributeValue("property"));
    // test uri entries
    entries = CatalogTest.getCatalogEntries(catalog, ICatalogEntry.ENTRY_TYPE_URI);
    assertEquals(1, entries.size());
    entry = (ICatalogEntry) entries.get(0);
    assertEquals(getFileLocation("/data/Invoice/Invoice.dtd"), entry.getURI());
    assertEquals("http://www.test.com/Invoice.dtd", entry.getKey());
    assertEquals("no", entry.getAttributeValue("chached"));
    assertEquals("value2", entry.getAttributeValue("property"));
    // test next catalog - catalog2.xml
    INextCatalog[] nextCatalogEntries = catalog.getNextCatalogs();
    assertEquals(1, nextCatalogEntries.length);
    INextCatalog nextCatalogEntry = (INextCatalog) nextCatalogEntries[0];
    assertNotNull(nextCatalogEntry);
    // String catalogRefId = nextCatalogEntry.getCatalogRefId();
    // assertEquals("nextCatalog1", catalogRefId);
    // resolvedURI = URIHelper.makeAbsolute(base, "catalog2.xml");
    assertEquals("catalog2.xml", nextCatalogEntry.getCatalogLocation());
    ICatalog nextCatalog = nextCatalogEntry.getReferencedCatalog();
    assertNotNull(nextCatalog);
    assertEquals(4, nextCatalog.getCatalogEntries().length);
    // test public entries
    entries = CatalogTest.getCatalogEntries(nextCatalog, ICatalogEntry.ENTRY_TYPE_PUBLIC);
    assertEquals(2, entries.size());
    entry = (ICatalogEntry) entries.get(0);
    // resolvedURI = URIHelper.makeAbsolute(nextCatalog.getBase(), "./PublicationCatalogue/Catalogue.xsd");
    assertEquals(getFileLocation("/data/PublicationCatalogue/Catalogue.xsd"), entry.getURI());
    assertEquals("http://www.eclipse.org/webtools/Catalogue_001", entry.getKey());
    // test public entry from a group
    entry = (ICatalogEntry) entries.get(1);
    // resolvedURI = URIHelper.makeAbsolute(nextCatalog.getBase(), "./PublicationCatalogue/Catalogue.xsd");
    assertEquals(getFileLocation("/data/PublicationCatalogue/Catalogue.xsd"), entry.getURI());
    assertEquals("http://www.eclipse.org/webtools/Catalogue_002", entry.getKey());
    // test system entries
    entries = CatalogTest.getCatalogEntries(nextCatalog, ICatalogEntry.ENTRY_TYPE_SYSTEM);
    assertEquals(1, entries.size());
    entry = (ICatalogEntry) entries.get(0);
    assertEquals(getFileLocation("/data/PublicationCatalogue/Catalogue.xsd"), entry.getURI());
    assertEquals("Catalogue.xsd", entry.getKey());
    // test uri entries
    entries = CatalogTest.getCatalogEntries(nextCatalog, ICatalogEntry.ENTRY_TYPE_URI);
    assertEquals(1, entries.size());
    entry = (ICatalogEntry) entries.get(0);
    assertEquals("http://www.eclipse.org/webtools/Catalogue/Catalogue.xsd", entry.getURI());
    assertEquals("http://www.eclipse.org/webtools/Catalogue.xsd", entry.getKey());
}
Also used : INextCatalog(org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog) List(java.util.List) ICatalogEntry(org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry) ICatalog(org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog) URL(java.net.URL) INextCatalog(org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog) Catalog(org.eclipse.wst.xml.core.internal.catalog.Catalog) ICatalog(org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog)

Example 5 with ICatalogEntry

use of org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry in project webtools.sourceediting by eclipse.

the class CatalogReaderTest method testCompatabilityReader.

public void testCompatabilityReader() throws Exception {
    // read catalog
    String catalogFile = "/data/compatabilityTest.xmlcatalog";
    URL catalogUrl = TestPlugin.getDefault().getBundle().getEntry(catalogFile);
    assertNotNull(catalogUrl);
    URL base = FileLocator.resolve(catalogUrl);
    Catalog catalog = (Catalog) getCatalog("compatabilityCatalog", base.toString());
    // CatalogReader.read(catalog, catalogFilePath);
    assertNotNull(catalog);
    List entries = CatalogTest.getCatalogEntries(catalog, ICatalogEntry.ENTRY_TYPE_PUBLIC);
    assertEquals(1, entries.size());
    ICatalogEntry entry = (ICatalogEntry) entries.get(0);
    assertEquals("platform:/resource/XMLExamples/Invoice2/Invoice.dtd", entry.getURI());
    assertEquals("InvoiceId", entry.getKey());
}
Also used : List(java.util.List) ICatalogEntry(org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry) URL(java.net.URL) INextCatalog(org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog) Catalog(org.eclipse.wst.xml.core.internal.catalog.Catalog) ICatalog(org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog)

Aggregations

ICatalogEntry (org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry)19 INextCatalog (org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog)10 ICatalog (org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog)9 List (java.util.List)8 Catalog (org.eclipse.wst.xml.core.internal.catalog.Catalog)4 URL (java.net.URL)3 ISelection (org.eclipse.jface.viewers.ISelection)3 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)3 ArrayList (java.util.ArrayList)2 ICatalogElement (org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogElement)2 File (java.io.File)1 SoftReference (java.lang.ref.SoftReference)1 HashMap (java.util.HashMap)1 Vector (java.util.Vector)1 IFile (org.eclipse.core.resources.IFile)1 IConfigurationElement (org.eclipse.core.runtime.IConfigurationElement)1 IExtensionPoint (org.eclipse.core.runtime.IExtensionPoint)1 IPath (org.eclipse.core.runtime.IPath)1 Path (org.eclipse.core.runtime.Path)1 IHyperlink (org.eclipse.jface.text.hyperlink.IHyperlink)1