|
MessageLogger.java
Created with JBuilder |
package antLogger.logClient;
import java.util.*;
/**
* MessageLogger -
* Dies ist die Messagelogger Klasse die uns die Interface-Gruppe zur Verfügung gestellt hat.
* Diese Leitet (delegiert) alle Anfragen an den Concrete MessageLogger weiter, dabei übernimmt
* sie die zugriffs regeln. So werden in dieser Klasse Meldungen abgewiesen die gefilter werden,
* Auch können keine Meldungen gesendet werden, wenn noch kein Name mit CreateLogger gesetzt wurde.
* AccessProxy;
*
* JAVA-Logger antLogger; Projekt der HTA Luzern->Abteilung Informatik->Software Engineering
* Authoren Patrick Bründler, Pascal Mengelt, Andy Wyss, Fabian Heusser
* Teacher: Jörg Hofstetter
* School: hta.fhz.ch, Horw;
* Project Homepage: http://www.w3p.ch/antLogger/
*
*
* LEGAL NOTICE
* THIS PROJECT AND ITS FILES ARE COPYRIGHTED BY THE AUTHORS
* THIS PROJECT CAN BE COPIED, MODIFIED AND DISTRIBUTED
* UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENCE
*
* @author Fabian Heusser
* @author Patrick Bründler
* @author Pascal Mengelt
* @author Andy Wyss
* @version 1.0 $Date$ $Revision$
* @(#) MessageLogger
*/
public class MessageLogger {
//hier sind die Prioritätslevel definiert
public final static int ERROR = 3;
public final static int WARNING = 2;
public final static int MESSAGE = 1;
public final static int INFO = 0;
public final static String[] TYPENAMES = {"INFO", "MESSAGE", "WARNING", "ERROR"};
//hier wird die EINZIGE instanz erzeugt; war im orginal nicht so, nur funktioniert das.
private static MessageLogger instance = new MessageLogger();
private static ConcreteMessageLogger logger = ConcreteMessageLogger.getInstance();
private static boolean[] filter = {true,true,true,true};
private static boolean isNameSet = false;
/**
* private constructor, da singelton
*/
private MessageLogger(){}
/**
* Zeichenet eine Meldung im Log-File auf sofern type nicht unterdrückt wird.
* @param msg string, Meldung die geschrieben werden soll.
* @param type int, INFO, MESSAGE, WARNING or ERROR
* @param objectName String, Name oder beizeichnung wo die Meldung generiert wurde
* @param c Calendar, Date and Time of logging typischerweise mit Calendar.getInstance() realisiert
* @return true fals die Message weitergeleitet wurde; false fals ein filter die Nachricht blockiert
*/
public boolean logMsg(String msg, int type_, String objectName, Calendar c){
if (this.filter[type_] && isNameSet) {
logger.logMsg(msg, type_, objectName, c);
return true;
}
return false;
}
/**
* setzt den Filter, welche Nachrichten geloggt werden.
* Um eine bestimmte art Meldungen zu blokieren wird der Arry-Eintrag an der stelle des Prioritätslevels auf flase gesetzt.
* boolean_array[ERROR] = false; blokiert alle ERROR Meldunge.
* Ist das Boolean Array NICHT gleicher länge wie das TYPENAMES Array, so
* kehr die Methode zurück ohne Filter zu setzten.
*
* @param type boolean[], ein Filter Array das wirksam werden soll.
*/
public void setTypeFilter(boolean[] type_){
if (type_.length == filter.length && isNameSet) this.filter = type_;
}
/**
* The console window will be shown
*/
public void showMsgWindow(){
if (isNameSet) logger.showMsgWindow();
}
/**
* The Console window will be hidden
*/
public void hideMsgWindow(){
if (isNameSet) logger.hideMsgWindow();
}
/**
* Im orginale Interface wurde hier die Instanz kreirt. Hier wird nur noch
* der Name der Applikation zugeiesen. Es ist jedoch so gelösst dass keine
* Message geloggt werden kann wenn können wenn kein name zugewiesen wurde
* Wenn der name einmal zugewiesen wurde kann er nicht mehr gändert werden.
*
* @param name String, name der Applikation welche im Logfile erscheint
*/
public static void createLogger(String name){
//instance = new MessageLogger(); WHAT IF WE CALL THAT TWICE????
if (!isNameSet) {logger.setName(name); isNameSet = true;}
}
/**
* Get the instance
* @return MessageLogger instanz
*/
public static MessageLogger getInstance(){
if (isNameSet) return instance;
return null;
}
public void destroy(String msg, int type_, String objectName, Calendar c) {
logger.close(msg, type_, objectName, c);
}
}
|
MessageLogger.java
Created with JBuilder |