public IStructuredFormatProcessor getFormatProcessor(String contentTypeId) { if (contentTypeId == null) return null; IStructuredFormatProcessor formatProcessor = null; if (map.containsKey(contentTypeId)) { formatProcessor = (IStructuredFormatProcessor) map.get(contentTypeId); } else { IContentTypeManager manager = Platform.getContentTypeManager(); IContentType queryContentType = manager.getContentType(contentTypeId); boolean found = false; for (Iterator iter = map.keySet().iterator(); iter.hasNext(); ) { String elementContentTypeId = (String) iter.next(); IContentType elementContentType = manager.getContentType(elementContentTypeId); if (queryContentType.isKindOf(elementContentType)) { formatProcessor = (IStructuredFormatProcessor) map.get(elementContentTypeId); map.put(contentTypeId, formatProcessor); found = true; break; } } if (!found) map.put(contentTypeId, null); } return formatProcessor; }
public void testIsAssociatedWith() { IContentTypeManager contentTypeManager = Platform.getContentTypeManager(); final SingleNodeScope scope = new SingleNodeScope(); IContentType textContentType = contentTypeManager.getContentType(Platform.PI_RUNTIME + '.' + "text"); IContentTypeSettings localSettings = null; try { localSettings = textContentType.getSettings(scope); } catch (CoreException e) { fail("0.1", e); } // haven't added association yet assertTrue("1.0", !textContentType.isAssociatedWith("hello.foo", scope)); assertTrue("1.1", !textContentType.isAssociatedWith("hello.foo")); try { // associate at the scope level localSettings.addFileSpec("foo", IContentType.FILE_EXTENSION_SPEC); } catch (CoreException e) { fail("1.5", e); } try { localSettings = textContentType.getSettings(scope); } catch (CoreException e) { fail("2.1", e); } // scope-specific settings should contain the filespec we just added String[] fileSpecs = localSettings.getFileSpecs(IContentType.FILE_EXTENSION_SPEC); assertEquals("2.2", 1, fileSpecs.length); assertEquals("2.3", "foo", fileSpecs[0]); // now it is associated at the scope level... assertTrue("2.5", textContentType.isAssociatedWith("hello.foo", scope)); // ...but not at the global level assertTrue("2.6", !textContentType.isAssociatedWith("hello.foo")); }
public void testContentTypeLookup() { IContentTypeManager global = Platform.getContentTypeManager(); final SingleNodeScope scope = new SingleNodeScope(); IContentTypeMatcher local = global.getMatcher(new LocalSelectionPolicy(), scope); IContentType textContentType = global.getContentType(Platform.PI_RUNTIME + '.' + "text"); try { // added "<test case name>.global" to the text content type as a global file spec textContentType.addFileSpec(getName() + ".global", IContentType.FILE_NAME_SPEC); } catch (CoreException e) { fail("0.1", e); } try { // added "<test case name>.local" to the text content type as a local (scope-specific) file // spec textContentType .getSettings(scope) .addFileSpec(getName() + ".local", IContentType.FILE_NAME_SPEC); } catch (CoreException e) { fail("0.2", e); } // make ensure associations are properly recognized when doing content type lookup assertEquals("1.0", textContentType, global.findContentTypeFor(getName() + ".global")); assertEquals("1.1", null, local.findContentTypeFor(getName() + ".global")); assertEquals("2.0", textContentType, local.findContentTypeFor(getName() + ".local")); assertEquals("2.1", null, global.findContentTypeFor(getName() + ".local")); try { textContentType.removeFileSpec(getName() + ".global", IContentType.FILE_NAME_SPEC); } catch (CoreException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
private static Set<String> loadGroovyFileNames() { IContentTypeManager contentTypeManager = Platform.getContentTypeManager(); if (contentTypeManager != null) { Set<String> names = null; IContentType groovyContentType = contentTypeManager.getContentType(GROOVY_SOURCE_CONTENT_TYPE); for (IContentType contentType : contentTypeManager.getAllContentTypes()) { if (contentType.isKindOf(groovyContentType)) { for (String fileName : contentType.getFileSpecs(IContentType.FILE_NAME_SPEC)) { if (names == null) names = new TreeSet<String>(); names.add(fileName); } } } if (names != null) return names; } return Collections.emptySet(); }
private static Set<String> loadGroovyFileExtensions() { IContentTypeManager contentTypeManager = Platform.getContentTypeManager(); if (contentTypeManager != null) { IContentType groovyContentType = contentTypeManager.getContentType(GROOVY_SOURCE_CONTENT_TYPE); Set<String> extensions = new HashSet<String>(); // https://bugs.eclipse.org/bugs/show_bug.cgi?id=121715 // content types derived from groovy content type should be included for (IContentType contentType : contentTypeManager.getAllContentTypes()) { if (contentType.isKindOf( groovyContentType)) { // note that contentType.isKindOf(javaContentType) == true for (String fileExtension : contentType.getFileSpecs(IContentType.FILE_EXTENSION_SPEC)) { extensions.add(fileExtension); } } } return extensions; } return Collections.singleton("groovy"); }