001 import log.Loggable;
002 import log.LogEntry;
003 import data.ooimpl.StoringStockItemDBEntry;
004
005
006 /**
007 * Definiert Die Schnittstelle <Code>Loggable</CODE>.
008 */
009 public class MyLoggable implements Loggable
010 {
011
012 //// attributes ////////////////////////////////////////////////////////////
013
014 String name;
015 String customerID;
016 Object date;
017 boolean rent; // wird ein Ausleihvorgang(true)
018 // oder ein Rückgabevorgang(false) geloggt
019
020 //// constructor ///////////////////////////////////////////////////////////
021
022 /**
023 * Der Konstruktor legt ein neues Objekt der Klasse <CODE>MyLoggable</CODE>
024 * an, wobei der Konstruktor von <CODE>Loggable</CODE> aufgerufen wird,
025 * und die übergebenen Variablen zugewiesen werden. Diese sind
026 * wichtig für die Erstellung des Log-Eintrags.
027 */
028 public MyLoggable(String name, String customerID, Object date)
029 {
030 super();
031 this.name = name;
032 this.customerID = customerID;
033 this.date = date;
034 rent = true;
035 }
036
037 /**
038 * Der Konstruktor wird vom GiveBackProcess aufgerufen,
039 * das LogEntry wird dadurch beeinflusst
040 */
041 public MyLoggable(StoringStockItemDBEntry cassetteItem, Customer customer, Object date)
042 {
043 super();
044 name = cassetteItem.getSecondaryKey();
045 this.customerID = customer.getCustomerID();
046 this.date = date;
047 rent = false;
048 }
049
050 //// public methods ////////////////////////////////////////////////////////
051
052 /**
053 * Holt sich den Log-Eintrag, der aus den übergebenen Daten
054 * zusammengestellt wird. Dazu wird die extra implementierte
055 * Klasse <CODE>MyLogEntry</CODE> genutzt.
056 */
057 public LogEntry getLogData()
058 {
059 return new MyLogEntry(name, customerID, date, rent);
060 }
061 }
062
063
064
065 /**
066 * Überschreibt die Klasse <Code>LogEntry</CODE> um einen
067 * selbstdefinierten Log-Eintrag zu ermöglichen.
068 */
069 class MyLogEntry extends LogEntry
070 {
071
072 //// attributes ////////////////////////////////////////////////////////////
073
074 String name;
075 String customerID;
076 Object date;
077 boolean rent; // wird ein Ausleihvorgang(true)
078 // oder ein Rückgabevorgang(false) geloggt
079
080 //// constructor ///////////////////////////////////////////////////////////
081
082 /**
083 * Der Konstruktor legt ein neues Objekt der Klasse <CODE>MyLogEntry</CODE>
084 * an, wobei der Konstruktor von <CODE>LogEntry</CODE> aufgerufen wird,
085 * und die übergebenen Variablen zugewiesen werden. Diese sind
086 * wichtig für die Erstellung des Log-Eintrags.
087 */
088 public MyLogEntry(String name, String customerID, Object date, boolean rent)
089 {
090 super();
091 this.name = name;
092 this.customerID = customerID;
093 this.date = date;
094 this.rent = rent;
095 }
096
097
098 //// public methods ////////////////////////////////////////////////////////
099
100 /**
101 * Spezifiziert das Aussehen des Log-Eintrags.
102 */
103 public String toString()
104 {
105 if (rent)
106 return name + " rent by customer " + customerID + " (ID) at turn " + date;
107 else
108 return "customer "+ customerID + " (ID) gave back " + name + " at turn " + date;
109 }
110 }