Package com.github.dynamicextensionsalfresco.controlpanel

Source Code of com.github.dynamicextensionsalfresco.controlpanel.WebScriptHelper

package com.github.dynamicextensionsalfresco.controlpanel;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.github.dynamicextensionsalfresco.controlpanel.template.TemplateWebScript;
import com.github.dynamicextensionsalfresco.webscripts.WebScriptUriRegistry;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.extensions.webscripts.WebScript;
import org.springframework.stereotype.Component;

import static java.util.Arrays.asList;

@Component
public class WebScriptHelper {

  @Autowired
  private BundleHelper bundleHelper;

  /* Main operations */

  public Map<String,List<TemplateWebScript>> getWebScripts() {
    final WebScriptUriRegistry registry = getApplicationContextBean(WebScriptUriRegistry.class);
    if (registry != null) {
      final List<WebScript> webScripts = registry.getWebScripts();
      final List<TemplateWebScript> templateWebScripts = new ArrayList<TemplateWebScript>(webScripts.size());
      for (final WebScript webScript : webScripts) {
        templateWebScripts.add(new TemplateWebScript(webScript));
      }
      Map<String,List<TemplateWebScript>> byFamily = new HashMap<String, List<TemplateWebScript>>();
      for (TemplateWebScript templateWebScript : templateWebScripts) {
        Set<String> familys = templateWebScript.getFamilys();
        if (familys == null) {
          familys = new HashSet<String>(asList("no family"));
        }
        for (String family : familys) {
          List<TemplateWebScript> familiyList = byFamily.get(family);
          if (familiyList == null) {
            familiyList = new ArrayList<TemplateWebScript>();
            byFamily.put(family, familiyList);
          }
          familiyList.add(templateWebScript);
        }
      }
      return byFamily;
    } else {
      return Collections.emptyMap();
    }
  }

  /* Utility operations */

  protected <T> T getApplicationContextBean(final Class<T> clazz) {
    final ApplicationContext applicationContext = bundleHelper.getService(ApplicationContext.class);
    if (applicationContext != null) {
      return applicationContext.getBean(clazz);
    } else {
      return null;
    }
  }

}
TOP

Related Classes of com.github.dynamicextensionsalfresco.controlpanel.WebScriptHelper

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.