resourceManagerのインスタンスを作成するためのサンプル・コード
ResourceManagerInterface
の実装は、oracle.bpel.rulesshareddc.model.impl.ResourceManagerとして提供されています。コンシューマは、ResourceManagerのインスタンスを作成し、それを対応するUIコンポーネントに渡すことができます。
ノート:
コンシューマは、保存されているリソース・バンドルすべてをリポジトリからロードする必要があり、java.util.Map (resourceMap)を構築する必要があります。その場合、リソース・バンドルのjava.util.Localeは、キーとして保持され、リソース・バンドル・ファイルの内容はjava.lang.Stringタイプの値として保持されます。
コンシューマは、dictionaryName + "Translations_" + locale.toString() + ".xml"
規則を使用して、リソース・バンドル・ファイルの名前を構築する必要があります。
コンシューマは、アプリケーション内でユーザーが変更をコミットするたびに、これらのリソース・バンドルをリポジトリに保存する必要があります。
public ResourceManagerInterface getResourceManager() { if (resourceManager == null) { resourceManager = new ResourceManager(loadResources(), ruleDictionary); } return resourceManager; } private Map<Locale, String> loadResources() { Map<Locale, String> resourceMap = new HashMap<Locale, String>(); for (Locale locale : LOCALES) { try { URL url = new URL(RULES_FILE_PATH + "Translations_" + locale.toString() + ".xml"); String content = new Scanner(new File(url.getFile()), "UTF-8").useDelimiter("\\A").next(); resourceMap.put(locale, content); } catch (IOException e) { resourceMap.put(locale, ""); LOG.severe("Failed to load resource:" + e.getMessage()); } } if (!resourceMap.keySet().contains(getLocale())) { resourceMap.put(getLocale(), ""); } return resourceMap; } private void storeResources(Map<Locale, String> resourceMap) { for (Locale locale : resourceMap.keySet()) { try { URL url = new URL(RULES_FILE_PATH + "Translations_" + locale.toString() + ".xml"); BufferedWriter out = new BufferedWriter(new FileWriter(url.getFile())); out.write(resourceMap.get(locale)); out.close(); } catch (IOException e) { LOG.severe("Failed to store resource:" + e.getMessage()); } } }