public IConfigurationElement getTerminologyLevelConfigurationElement(final String terminologyId, final String extensionPointId) { Preconditions.checkNotNull(terminologyId, "Terminology identifier argument cannot be null."); Preconditions.checkNotNull(extensionPointId, "Extension point identifier name argument cannot be null."); Preconditions.checkArgument(!StringUtils.isEmpty(terminologyId), "Terminology identifier argument cannot be empty string."); Preconditions.checkArgument(!StringUtils.isEmpty(extensionPointId), "Extension point identifier argument cannot be empty string."); final IConfigurationElement configurationElement = getTerminologyLevelConfigurationElementUnsafe(terminologyId, extensionPointId); if (null == configurationElement) { throw new RuntimeException("No configuration element has been registered for '" + extensionPointId + "' extension with the '" + terminologyId + "' terminology component identifier."); } return configurationElement; }
/**Returns with the {@link IClientTerminologyBrowserFactory terminology browser factory} for the given terminology component ID argument. *<p>If there are no registered terminology browser factories associated with the given terminology component ID, this method returns with a factory *which creates an {@link ClientTerminologyBrowserAdapter empty terminology browser}. That empty terminology browser instance always returns with {@code true} *for {@link IClientTerminologyBrowser#isTerminologyAvailable()} invocation.*/ public IClientTerminologyBrowserFactory<String, IComponent<String>, IClientTerminologyBrowser<IComponent<String>, String>> getTerminologyBrowserFactory( final String terminologyComponentId) { final IConfigurationElement configurationElement = getTerminologyLevelConfigurationElementUnsafe(getTerminologyId(terminologyComponentId), TERMINOLOGY_BROWSER_FACTORY_EXTENSION_POINT_ID); if (null == configurationElement) { return new IClientTerminologyBrowserFactory<String, IComponent<String>, IClientTerminologyBrowser<IComponent<String>,String>>() { @Override public IClientTerminologyBrowser<IComponent<String>, String> getTerminologyBrowser() { return EMPTY_CLIENT_BROWSER; } @Override public IClientTerminologyBrowser<IComponent<String>, String> getTerminologyBrowser(IBranchPath branchPath) { return EMPTY_CLIENT_BROWSER; } }; } return (IClientTerminologyBrowserFactory<String, IComponent<String>, IClientTerminologyBrowser<IComponent<String>, String>>) createExecutableExtension(configurationElement); }