Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* This Source Code Form is subject to the terms of the Mozilla Public
   * License, v. 2.0. If a copy of the MPL was not distributed with this file,
   * You can obtain one at http://mozilla.org/MPL/2.0/. */
  
  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