de.kl.xsreports
Class CsvGenerator

java.lang.Object
  extended by de.kl.xsreports.CsvGenerator
All Implemented Interfaces:
Generator, GeneratorConfiguration

public class CsvGenerator
extends java.lang.Object
implements Generator, GeneratorConfiguration

Diese Klasse implementiert einen einfachen CSV - Report Generator. Dieser Generator liest folgende Parameter aus der WEB-XML des Servlets:

 session.dataattribute    - Name des Attributes im Session Objekt das das Properties Objekt 
                            mit den Daten enthaelt.
                            Beispiel:
                              <init-param>
                              <param-name>session.dataattribute;/param-name>
                              <param-value>values</param-value>
                              </init-param>
 
 session.dataattribute.property
                          - Name des Properties (im Properties Objekt) das das Array mit den 
                            Daten enthaelt. Fehlt diese Angabe, so werden alle Properties die 
                            Array-Objekte enthalten in den Report aufgenommen. (optional)
                            Beispiel:
                              <init-param>
                              <param-name>session.dataattribute.property;/param-name>
                              <param-value>test</param-value>
                              </init-param>

 
Aus den Properties des Reports werden folgende Werte gelesen:

 generator.seperator      - Trennzeichen; default ist ein ; (optional)
                            Beispiel:
                              generator.seperator=,
 generator.quote          - Quote; fuer Texte, die selbst das Trennzeichen enthalten; 
                            default ist ein " (optional)

 report.activities.header - Kopfzeile der Tabelle.
                            Beispiel:
                            report.activities.header=Index,Wert

 report.activities.columnmap
                          - Reihenfolge der Spalten
                            Beispiel:
                            report.activities.columnmap=1,0
 

Author:
nikita

Constructor Summary
CsvGenerator()
          Erzeugt ein neues Objekt.
 
Method Summary
 void generate(java.io.Writer Destination, java.util.Map Data)
          Erezeugt den Report.
 java.lang.String getContentType()
          Gibt den Typ des Reports in einer HTTP konformen Art zurueck.
 void init(javax.servlet.ServletConfig Config)
          Diese Methode wird von der Factory aufgerufen bevor der Report erstellt wird.
 void setProperties(java.util.Map Prop)
          Definiert die Eigenschaften des Reports.
 void setTemplate(java.io.InputStream TemplateSource)
          Wird von der Factory aufgerufen, falls fuer den Report ein Template definiert wurde.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CsvGenerator

public CsvGenerator()
Erzeugt ein neues Objekt. Diese Methode wird nur von der Factory verwendet.

Method Detail

generate

public void generate(java.io.Writer Destination,
                     java.util.Map Data)
              throws java.io.IOException,
                     ConfigurationException
Erezeugt den Report.

Specified by:
generate in interface Generator
Parameters:
Destination - Ziel fuer die Ausgabe des Reports.
Data - Properties Objekt mit den Report Daten.
Throws:
java.io.IOException - Falls es beim schreiben zu Fehlern kommt.
ConfigurationException - Falls Fehler in den Konfigurations-Daten des Servlets gefunden werden.

getContentType

public java.lang.String getContentType()
Gibt den Typ des Reports in einer HTTP konformen Art zurueck.

Specified by:
getContentType in interface Generator
Returns:
application/csv

init

public void init(javax.servlet.ServletConfig Config)
Diese Methode wird von der Factory aufgerufen bevor der Report erstellt wird.

Specified by:
init in interface GeneratorConfiguration
Parameters:
Config - Die Konfigurations-Daten des Servlets.

setTemplate

public void setTemplate(java.io.InputStream TemplateSource)
                 throws java.io.IOException
Wird von der Factory aufgerufen, falls fuer den Report ein Template definiert wurde. Diese Implementierung unterstuetzt keine Templates.

Specified by:
setTemplate in interface GeneratorConfiguration
Parameters:
TemplateSource - Datenquelle von der das Template gelesen werden kann.
Throws:
java.io.IOException - Falls es beim Lesen des Templates von der Datenquelle zu Fehlern kommt.

setProperties

public void setProperties(java.util.Map Prop)
                   throws ConfigurationException
Definiert die Eigenschaften des Reports.

Specified by:
setProperties in interface GeneratorConfiguration
Parameters:
Prop - Ein Object das das Map Interface implementiert Das Object speichert zusaetzlich Eigenschaften die aus Aussehen des Reports bestimmen.
Throws:
ConfigurationException