Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package pt.webdetails.cda.exporter;
  
  import java.util.HashMap;
  
  import  org.apache.commons.lang.StringUtils;
  import  org.apache.commons.logging.Log;
  import  org.apache.commons.logging.LogFactory;
Main engine class that will answer to calls

Created by IntelliJ IDEA. User: pedro Date: Feb 2, 2010 Time: 2:24:16 PM

 
 public class ExporterEngine
 {
 
   private static final Log logger = LogFactory.getLog(ExporterEngine.class);
   private static ExporterEngine _instance;
   
   public enum OutputType{
   	
   	JSON("json"),
   	XML("xml"),
   	CSV("csv"),
   	XLS("xls"),
   	HTML("html");
   	
   	private String type;
   	OutputType(String type){this. = type;}
   	public String toString(){ return ;}
   	
   	public static OutputType parse(String typeStr){
   	  for(OutputType outputType: OutputType.values()){
   	    if(StringUtils.equalsIgnoreCase(outputType.toString(), typeStr)){
   	      return outputType;
   	    }
   	  }
   	  return null;
   	}
   }
 
   public ExporterEngine()
   {
     .info("Initializing CdaEngine");
     init();
 
   }
 
   
   public Exporter getExporter(final String outputTypethrows UnsupportedExporterException
   {
     return getExporter(outputTypenull);
   }
 
   public Exporter getExporter(final String outputTypefinal HashMap<StringStringextraSettingsthrows UnsupportedExporterException
   {
     Exporter exporter = getExporter( OutputType.parse(outputType), extraSettings);
     if(exporter != null)
     {
       return exporter;
     }
     //else fallback to old version
     .info(MessageFormat.format("getExporter for {0} failed, falling back to old version"outputType));
 
     try
     {
 
       final String className = "pt.webdetails.cda.exporter."
               + outputType.substring(0, 1).toUpperCase() + outputType.substring(1, outputType.length()) + "Exporter";
 
       final Class clazz = Class.forName(className);
       final Class[] params =
       {
         HashMap.class
       };
 
       exporter = (Exporterclazz.getConstructor(params).newInstance(new Object[]
               {
                 extraSettings
               });
       return exporter;
 
     }
     catch (Exception e)
     {
       throw new UnsupportedExporterException("Error initializing export class: " + Util.getExceptionDescription(e), e);
     }
 
   }
   
   private Exporter getExporter(OutputType typeHashMap<StringStringextraSettings)
   {
     if(type == nullreturn null;
     
    switch(type){
      case :
        return new CsvExporter(extraSettings);
      case :
        return new HtmlExporter(extraSettings);
      case :
        return new JsonExporter(extraSettings);
      case :
        return new XlsExporter(extraSettings);
      case :
        return new XmlExporter(extraSettings);
      default:
        return null;
    }
  }
  private void init()
  {
  }
  public static synchronized ExporterEngine getInstance()
  {
    if ( == null)
    {
       = new ExporterEngine();
    }
    return ;
  }
New to GrepCode? Check out our FAQ X