package com.k_int.svc.s2js;

import java.util.*;
import java.util.*;
import org.hibernate.*;
import org.hibernate.criterion.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.*;

public class Struts2JsonService implements ApplicationContextAware {

  public static Log log = LogFactory.getLog(Struts2JsonService.class);

  private static ApplicationContext ctx = null;
  private Map<String,S2JSDataSet> data_sets = null;

  public Struts2JsonService() {
  }

  public void setApplicationContext(ApplicationContext ctx) {
    log.debug("Setting app ctx");
    this.ctx = ctx;
  }

  public Map<String,S2JSDataSet> getConfig() {
    return data_sets;
  }

  public void setConfig(Map<String,S2JSDataSet> data_sets) {
    this.data_sets = data_sets;
  }

  public List evaluate(String name, org.hibernate.Session session) {
    log.debug("evaluate");
    List result = null;
    S2JSDataSet s2js_data_set = data_sets.get(name);
    if ( s2js_data_set != null ) {
      result = new java.util.ArrayList();
      result.addAll(s2js_data_set.evaluate(session));
    }
    else {
      log.debug("Unable to lookup name "+name+" configured data sets: "+data_sets.keySet());
    }
    return result;
  }
}
