de.kl.xsreports
Interface TemplateHandler

All Known Implementing Classes:
FileHandler

public interface TemplateHandler

Dieses Interface wird von Klassen implementiert, die Templates fuer den Report-Generator bereitstellen koennen. Die Idee hier ist, dass verschiedenen WEB Anwendungung Templates voellig verschieden behandeln koennen. Im einfachsten Fall wird das Template aus einem Verzeichniss des Servers gelesen. Man kann sich aber auch folgende Faelle vorstellen:

Eine weitere Funktion die ein Klasse die dieses Interface implementiert bereitstellen kann sind benutzerspezifische Templates. Ein Parameter der den Benutzer der den Report anfordert identifiziert wird der Klasse beim Aufruf der Methode getTemplate(java.lang.String, java.lang.String, javax.servlet.ServletContext) mitgegeben. Dieser String kann beispielsweise der Name des Benutzers oder ein qualifizierter Name (cn=kalle,o=abb,o=se) sein. Dieses Verhalten kann man implementieren, ohne dass der Report-Generator selbst davon betroffen ist. Dieses Interface wird von der Factory Klasse benutzt.

Author:
nikita

Method Summary
 java.io.InputStream getTemplate(java.lang.String Name, java.lang.String UserInfo, javax.servlet.ServletContext Context)
          Holt den Stream, von dem der Client das Template fuer den Generator lesen kann.
 java.util.Map getTemplateProperties(java.lang.String Name, java.lang.String UserInfo, javax.servlet.ServletContext Context)
          Holt die Konfigurationsdaten die zu dem Template gehoeren.
 void putTemplate(java.io.InputStream TemplateSource, java.lang.String Name, java.lang.String UserInfo, javax.servlet.ServletContext Context)
          Speichert ein neues Template auf dem Server.
 

Method Detail

getTemplate

java.io.InputStream getTemplate(java.lang.String Name,
                                java.lang.String UserInfo,
                                javax.servlet.ServletContext Context)
                                throws ConfigurationException
Holt den Stream, von dem der Client das Template fuer den Generator lesen kann.

Parameters:
Context - Context des aufgerufenen Servlets.
UserInfo - Name des Benutzers fuer den der Report angefertigt wird. Die Implementierung kann anhand dieses Parameters ein benutzerspezifices Template laden. Dieser Parameter kann null sein. Das zeigt der Implementation an das kein benutzerspezifiches Template verwendet werden soll.
Name - Name des Templates das geladen werden soll.
Returns:
Ein stream, von dem Template gelesen werden kann.
Throws:
ConfigurationException - Wenn das Template in den Konfigurations-Daten des Serlets nicht gefunden wird.

putTemplate

void putTemplate(java.io.InputStream TemplateSource,
                 java.lang.String Name,
                 java.lang.String UserInfo,
                 javax.servlet.ServletContext Context)
                 throws java.io.IOException,
                        ConfigurationException
Speichert ein neues Template auf dem Server. Die Ablage erfolgt benutzerspezifich.

Parameters:
TemplateSource - Datenquelle, von der das neue Template gelesen wird.
Name - Name des Templates.
UserInfo - Text, der von der Implementierung benutzt wird, um den Benutzer zu identifizieren. Beispiel: cn=Kalle,o=abc,o=bund,o=de.
Dieser Parameter kann null sein. Das zeigt der Implementation an das kein benutzerspezifiches Template verwendet werden soll.
Context - Context des aufgerufenen Servlets.
Throws:
java.io.IOException - Falls es nicht moeglich war, das angegebene Template zu schreiben, oder, von der angegebenen Quelle zu lesen.
ConfigurationException - Falls der Report-Service falsch konfiguriert wurde.

getTemplateProperties

java.util.Map getTemplateProperties(java.lang.String Name,
                                    java.lang.String UserInfo,
                                    javax.servlet.ServletContext Context)
                                    throws ConfigurationException
Holt die Konfigurationsdaten die zu dem Template gehoeren.

Parameters:
Context - Context des aufgerufenen Servlets.
UserInfo - Name des Benutzers fuer den der Report angefertigt wird. Die Implementierung kann anhand dieses Parameters ein benutzerspezifices Template laden. Dieser Parameter kann null sein. Das zeigt der Implementation an das kein benutzerspezifiches Template verwendet werden soll.
Name - Name des Templates das geladen werden soll.
Returns:
Ein Object, das das Interface "Map" implementiert und ueber das die Eigenschaften den Templates gelesen werden koennen.
Throws:
ConfigurationException - Wenn das Template in den Konfigurations-Daten des Serlets nicht gefunden wird.