OpenKeyWord  Build_ID: 457, Datum: 01.02.2020 07:45:48
Dont repeat yourself. - Do it once and only once!
OKW_Memorize_Sngltn.java
1 /*
2  ==============================================================================
3  Author: Zoltán Hrabovszki <zh@openkeyword.de>
4 
5  Copyright © 2012 - 2019 IT-Beratung Hrabovszki
6  www.OpenKeyWord.de
7  ==============================================================================
8 
9  This file is part of OpenKeyWord.
10 
11  OpenKeyWord is free software: you can redistribute it and/or modify
12  it under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenKeyWord is distributed in the hope that it will be useful,
17  but WITHOUT ANY WARRANTY; without even the implied warranty of
18  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  GNU General Public License for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenKeyWord. If not, see <http://www.gnu.org/licenses/>.
23 
24  Diese Datei ist Teil von OpenKeyWord.
25 
26  OpenKeyWord ist Freie Software: Sie können es unter den Bedingungen
27  der GNU General Public License, wie von der Free Software Foundation,
28  Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren
29  veröffentlichten Version, weiterverbreiten und/oder modifizieren.
30 
31  OpenKeyWord wird in der Hoffnung, dass es nützlich sein wird, aber
32  OHNE JEDE GEWÄHRLEISTUNG, bereitgestellt; sogar ohne die implizite
33  Gewährleistung der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.
34  Siehe die GNU General Public License für weitere Details.
35 
36  Sie sollten eine Kopie der GNU General Public License zusammen mit
37  OpenKeyWord erhalten haben. Wenn nicht, siehe <http://www.gnu.org/licenses/>.
38 */
39 
40 package okw;
41 
42 //import java.io.IOException;
43 import java.util.HashMap;
44 import java.util.Map;
45 
46 //import javax.xml.bind.JAXBException;
47 //import javax.xml.parsers.ParserConfigurationException;
48 import javax.xml.xpath.XPathExpressionException;
49 
50 //import org.xml.sax.SAXException;
51 
52 import okw.exceptions.OKWMemorizeKeyNotExistsException;
53 import okw.log.Logger_Sngltn;
54 
73 public class OKW_Memorize_Sngltn
74 {
83  public String OKW_Memorize_xml = "";
84 
96  protected Map<String, String> Value = new HashMap<String, String>();
97 
111  protected Map<String, String> ValuePersistent = new HashMap<String, String>();
112 
113 
129  protected static OKW_Memorize_Sngltn Instance;
130 
131 
140  protected LogMessenger LM = null;
141 
151 
152  protected OKW_Properties Properties = OKW_Properties.getInstance();
153 
168  {
169  try
170  {
171  LM = new LogMessenger("OKW_Memorize");
172  }
173  catch (Exception e)
174  {
175  OKW_HandleException.StopRunning(e, Instance.getClass());
176  }
177  }
178 
199  {
200  // Lazy Initialization (If required then only)
201  if (Instance == null)
202  {
203  // Thread Safe. Might be costly operation in some case
204  synchronized (OKW_Const_Sngltn.class)
205  {
206  if (Instance == null)
207  {
209  Instance.init();
210  }
211  }
212  }
213 
214  return Instance;
215  }
216 
228  public static void reset()
229  {
230  Instance = null;
231  getInstance();
232  }
233 
247  public Boolean exists( String fpsKey )
248  {
249  Boolean lvbReturn = false;
250 
251  Log.LogFunctionStartDebug(Instance.getClass().getName() + ".Exists", "String fpsKey", fpsKey);
252 
253  if ( Value.containsKey(fpsKey))
254  {
255  lvbReturn = true;
256  }
257  else
258  {
259  lvbReturn = false;
260  }
261 
262  Log.LogFunctionEndDebug(lvbReturn);
263 
264  return lvbReturn;
265  }
266 
284  public String get( String fpsKey )
285  {
286  String lvsReturn = null;
287 
288  Log.LogFunctionStartDebug(Instance.getClass().getName() + ".Get", "String fpsKey", fpsKey);
289 
290  try
291  {
292  if ( Value.containsKey(fpsKey))
293  {
294  lvsReturn = Value.get(fpsKey);
295  }
296  else
297  {
298  String ErrorText = LM.GetMessage("Get", "OKWMemorizeKeyNotExistsException", fpsKey);
299  throw new OKWMemorizeKeyNotExistsException(ErrorText);
300  }
301  }
302  finally
303  {
304  Log.LogFunctionEndDebug(lvsReturn);
305  }
306 
307  return lvsReturn;
308  }
309 
342  public void init()
343  {
344  Log.LogFunctionStartDebug(this.getClass().getName() + ".Init");
345 
346  // Klassen Variablen erst löschen...
347 
349  Instance.Value.clear();
350 
351  // ... und dann alles Initialisieren!
352  // 1. Setze Pfad und
353  OKW_Memorize_xml = OKW_Ini_Sngltn.getInstance().OKW_Enviroment.getFile_OKW_Memorize_xml();
354 
355  if (!OKW_Helper.isStringNullOrEmpty(this.OKW_Memorize_xml))
356  {
357  this.Log.LogPrintDebug("OKW Memorize Datei = >>" + this.OKW_Memorize_xml + "<<");
358  if (OKW_FileHelper.fileExists(this.OKW_Memorize_xml))
359  {
360  // Lesen der Daten...
361  //this.Read();
362  }
363  else
364  {
365  // Deafault Werte Lesen.
366  Log.LogWarning("Datei: >>" + this.OKW_Memorize_xml + "<< nicht gefunden.");
367  }
368  }
369  else
370  {
371  Log.LogWarning("Enviroment variable 'OKWIni' not set!");
372  }
373 
375  }
376 
388  public void load()
389  {
390  Log.LogFunctionStartDebug(Instance.getClass().getName() + "load()");
391 
392  try
393  {
394  OKW_XmlReader myXMLReader = new OKW_XmlReader("xml/OKW_Memorize.xml");
395  }
396  catch(Exception e)
397  {
398  Log.LogPrintDebug(e.getMessage());
399  }
400  finally
401  {
403  }
404  }
405 
421  public void save()
422  {
423  Log.LogFunctionStartDebug( Instance.getClass().getName() + ".save");
424 
425  try
426  {
427  // Hint: The Name of Property with the Path nad Filename of the Properties-file
428  // to be loaded is "OKW_Memorize.properties"
429  Properties.getProperty( "OKW_Memorize.properties", "OKW_Memorize.properties" );
430 
431  }
432  finally
433  {
435  }
436  }
437 
452  public void set( String fpsKey, String fpsValue ) throws XPathExpressionException
453  {
454  Log.LogFunctionStartDebug(Instance.getClass().getName() + ".Set", "String fpsKey", fpsKey,
455  "String fpsValue", fpsValue);
456 
457  try
458  {
459  // Are we overwriting an existing MemKey?
460  if (Value.containsKey(fpsKey))
461  {
462  String lvsOverwriteKey = LM.GetMessage("Set", "OverwriteKey", fpsKey);
463  String lvsOldValue = LM.GetMessage("Set", "OldValue", Value.get(fpsKey));
464  String lvsNewValue = LM.GetMessage("Set", "NewValue", fpsValue);
465 
466  if (!lvsOldValue.equals( lvsNewValue ))
467  {
468  Log.ResOpenList(lvsOverwriteKey);
469  Log.LogPrint(lvsOldValue);
470  Log.LogPrint(lvsNewValue);
471  Log.ResCloseList();
472  }
473  Instance.Value.put(fpsKey, fpsValue);
474  }
475  else
476  {
477  Instance.Value.put(fpsKey, fpsValue);
478 
479  Log.ResOpenList(LM.GetMessage("Set", "SetValue", fpsKey, fpsValue));
480  String lvsMessage = LM.GetMessage("Set", "SetKeyAndValue", fpsKey, fpsValue);
481  Log.LogPrint( lvsMessage);
482  Log.ResCloseList();
483  }
484 
485  // persistentes Speichern aller Daten...
486  // TODO: Prüfen: das wurde ebntfern. Frage soll hier eine Persisntes eingebaut werden?
487  // Instance.save();
488  }
489  finally
490  {
492  }
493  }
494 }
okw.OKW_FileHelper
OKW_FileHelper enthält FilfsMethoden für die Handhabung von Dateien und Verzechnissen.
Definition: OKW_FileHelper.java:63
okw.log.Logger_Sngltn.ResOpenList
void ResOpenList(String fps_Name)
Creates a new hierarchical level in the results file.
Definition: Logger_Sngltn.java:614
okw.LogMessenger
LogMessenger liest Log-Meldungen sprachspezifisch für die im Konstruktor gegeben Klasse aus der Zugeh...
Definition: LogMessenger.java:84
okw.OKW_Properties
Reihenfolge der Resourcen-"Beladung".
Definition: OKW_Properties.java:46
okw.OKW_FileHelper.fileExists
static Boolean fileExists(String fpsPaFiNa)
Prüft, ob die gegebene fpsPaFiNa Datei existiert.
Definition: OKW_FileHelper.java:532
okw.OKW_Memorize_Sngltn.save
void save()
Schreibt die Felder (fields) der Klasse OKW_Memorize in eine Datei.
Definition: OKW_Memorize_Sngltn.java:421
okw.log.Logger_Sngltn.LogFunctionEndDebug
void LogFunctionEndDebug()
LogFunctionEndDebug:
Definition: Logger_Sngltn.java:249
okw.log.Logger_Sngltn.getInstance
static Logger_Sngltn getInstance()
Zentrale Logger-Klasse stellt Logger-Methoden innerhalb von OKW zur Verfügung.
Definition: Logger_Sngltn.java:88
okw.OKW_Memorize_Sngltn.OKW_Memorize_xml
String OKW_Memorize_xml
Variable hält Pfad und Dateinamen der OKW_Memorize.xml.
Definition: OKW_Memorize_Sngltn.java:83
okw.OKW_Ini_Sngltn
Definition: OKW_Ini_Sngltn.java:199
okw.OKW_HandleException
Definition: OKW_HandleException.java:6
okw.OKW_Memorize_Sngltn.Instance
static OKW_Memorize_Sngltn Instance
Singelton spezifisch: Dieses Feld speichert die einzige Instanz dieser Klasse.
Definition: OKW_Memorize_Sngltn.java:129
okw.OKW_Memorize_Sngltn.exists
Boolean exists(String fpsKey)
Prüft ob es eine Eintrag zum Schlüssel fpsKey vorhanden ist.
Definition: OKW_Memorize_Sngltn.java:247
okw.OKW_Memorize_Sngltn.load
void load()
Liest die Werte der Klasse OKW_Memorize aus einer Datei, gegeben in OKW.OKW_Ini.Xml_Ini_xml,...
Definition: OKW_Memorize_Sngltn.java:388
okw.OKW_Memorize_Sngltn
OKW_Memorize ist die Speicher-Klasse hinter den Merke*-Schlüsselwörter.
Definition: OKW_Memorize_Sngltn.java:73
okw.OKW_Memorize_Sngltn.OKW_Memorize_Sngltn
OKW_Memorize_Sngltn()
Privater Konstruktor dieser Klasse.
Definition: OKW_Memorize_Sngltn.java:167
okw.OKW_Properties.getInstance
static OKW_Properties getInstance()
Holt die einzige Instanz dieser Klasse.
Definition: OKW_Properties.java:116
okw.log.Logger_Sngltn.LogFunctionStartDebug
void LogFunctionStartDebug(String fps_FunctionName, String... fpsParameter)
LogFunctionStartDebug:
Definition: Logger_Sngltn.java:311
okw.OKW_Memorize_Sngltn.ValuePersistent
Map< String, String > ValuePersistent
Dictionary speichert Schlüssel-Wert Paare.
Definition: OKW_Memorize_Sngltn.java:111
okw.log.Logger_Sngltn.LogPrint
void LogPrint(String fps_Message)
LogPrint Function: Prints the values of expressions to the results file.
Definition: Logger_Sngltn.java:487
okw.OKW_Helper.isStringNullOrEmpty
static Boolean isStringNullOrEmpty(String fpsString)
Prüft ob der gegeben String fpsStrin null oder leer ("") ist.
Definition: OKW_Helper.java:853
okw.OKW_Properties.getProperty
String getProperty(String fpsKey)
Ermittelt den aktuellen Wert des Propertys gegeben mit dem Schlüssel fpsKey.
Definition: OKW_Properties.java:804
okw.log.Logger_Sngltn.ResCloseList
void ResCloseList()
Closes a hierarchical level in the results file that was opened with ResOpenList.
Definition: Logger_Sngltn.java:574
okw.OKW_XmlReader
Definition: OKW_XmlReader.java:24
okw.OKW_Memorize_Sngltn.init
void init()
Initialsiert die Klasse OKW.OKW_Memorize.
Definition: OKW_Memorize_Sngltn.java:342
okw.log.Logger_Sngltn.LogPrintDebug
void LogPrintDebug(String fpsMessage)
Loggt eine Nachricht.
Definition: Logger_Sngltn.java:520
okw.OKW_Memorize_Sngltn.getInstance
static OKW_Memorize_Sngltn getInstance()
Diese Methode gibt die einzige Instanz dieser Klasse zurück.
Definition: OKW_Memorize_Sngltn.java:198
okw.LogMessenger.GetMessage
String GetMessage(String MethodName, String TextKey)
Holt die Log-Meldung für MethodeNmae/Textkey ohne weitere Parameter.
Definition: LogMessenger.java:137
okw.OKW_Memorize_Sngltn.LM
LogMessenger LM
Eine lokale Instanz des OKW.Log.LogMssenger.
Definition: OKW_Memorize_Sngltn.java:140
okw.OKW_Helper
Klasse enthält OKW-Hilfsfunktionen.
Definition: OKW_Helper.java:62
okw.OKW_Const_Sngltn
OKW_Const verwaltet die sprachabhängigen OKW-Konstanten.
Definition: OKW_Const_Sngltn.java:127
okw.OKW_Memorize_Sngltn.reset
static void reset()
Methode setzt diese Klasse zurück.
Definition: OKW_Memorize_Sngltn.java:228
okw.exceptions.OKWMemorizeKeyNotExistsException
Die Ausnahme wird ausgelöst, wenn kein Eintrag zu einem Schlüssel vorhanden ist.
Definition: OKWMemorizeKeyNotExistsException.java:55
okw.log.Logger_Sngltn
Definition: Logger_Sngltn.java:54
okw.OKW_Memorize_Sngltn.Log
Logger_Sngltn Log
Referenz auf die einzige Instanz des Klasse OKW.Logger.
Definition: OKW_Memorize_Sngltn.java:150
okw.OKW_Memorize_Sngltn.Value
Map< String, String > Value
Dictionary speichert die Schlüssel-Wert Paare.
Definition: OKW_Memorize_Sngltn.java:96
okw.log.Logger_Sngltn.LogWarning
void LogWarning(String fps_Message)
LogWarning Function: Logs a warning to the results file.
Definition: Logger_Sngltn.java:536