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 }