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());
      }
    }
  }