OpenKeyWord  Build_ID: 457, Datum: 01.02.2020 07:45:48
Dont repeat yourself. - Do it once and only once!
OKW_Properties.java
1 package okw;
2 
3 import java.io.File;
4 import java.io.FileInputStream;
5 import java.io.IOException;
6 import java.io.InputStream;
7 import java.io.UnsupportedEncodingException;
8 import java.net.URL;
9 import java.net.URLDecoder;
10 import java.nio.charset.Charset;
11 import java.util.ArrayList;
12 import java.util.Collections;
13 import java.util.Comparator;
14 import java.util.Iterator;
15 import java.util.Map;
16 import java.util.Properties;
17 import java.util.Set;
18 import java.util.SortedMap;
19 import java.util.TreeMap;
20 
21 import java.util.regex.Pattern;
22 import okw.exceptions.OKWFileDoesNotExistsException;
23 import okw.log.Logger_Sngltn;
24 import okw.parser.Parser;
25 
26 import org.apache.commons.lang3.StringUtils;
27 import org.stringtemplate.v4.ST;
28 
46 public class OKW_Properties extends Properties
47 {
48  private static OKW_Properties Instance;
49 
50  String PropPath = "";
51  String PropPathWin = "";
52 
57 
58 
69  protected ArrayList<String> CoreProperties = new ArrayList<String>();
70 
71 
82  protected ArrayList<String> ResoursesProperties = new ArrayList<String>();
83 
84 
95  protected ArrayList<String> FileProperties = new ArrayList<String>();
96 
99  private static final long serialVersionUID = -6936118958227023483L;
100 
116  public static OKW_Properties getInstance()
117  //throws XPathExpressionException, JAXBException, ParserConfigurationException, SAXException, IOException
118  {
119  // Lazy Initialization (If required then only)
120  if ( Instance == null )
121  {
122  // Thread Safe. Might be costly operation in some case
123  synchronized ( OKW_Properties.class )
124  {
125  if ( Instance == null )
126  {
127  Instance = new OKW_Properties();
128  }
129  }
130  }
131  return Instance;
132  }
133 
134 
135  private OKW_Properties()
136  {
137  super();
138  init();
139  }
140 
156  public void clear()
157  {
158  super.clear();
159  this.CoreProperties.clear();
160  this.ResoursesProperties.clear();
161  this.FileProperties.clear();
162  }
163 
181  public void init()
182  {
183  String Sep = System.getProperty( "file.separator" );
184 
185  // Zurücksetzen...
186  this.clear();
187 
188  Log.ResOpenList( "Find Properties..." );
189 
190  // =========================================
191  // !. JAR - */okw/default/*/*.properties Dateien einlesen
192  // =========================================
193  //
194  // -----------------------------------------
195  // okw-Dafault-Properties
196  //
197  Log.ResOpenList( "Find OKW Core Properties..." );
198 
199  String PropPattern = ".*okw.default.properties.*\\.properties";
200  String PropPath = "okw" + Sep + "default" + Sep + "properties" + Sep;
201  String PropPathWin = "okw/default/properties/";
202 
203  ArrayList<String> someProperties = getPropertyFiles( PropPattern, PropPath, PropPathWin);
204  this.CoreProperties.addAll( someProperties );
205 
206  Log.ResCloseList();
207 
208  // =========================================
209  // project specific properties
210  // =========================================
211  //
212  Log.ResOpenList( "Find Project Properties..." );
213 
214  PropPattern = ".*okw.properties.*\\.properties";
215  PropPath = "okw" + Sep + "properties" + Sep;
216  PropPathWin = "okw/properties/";
217 
218  ArrayList<String> some3Properties = getPropertyFiles( PropPattern, PropPath, PropPathWin);
219  this.ResoursesProperties.addAll( some3Properties );
220 
221  Log.ResCloseList();
222 
223  Log.ResCloseList();
224 
225  // =========================================
226  // Read system properties and environment Vars...
227  // and Update Properties-list
228  // =========================================
229  this.updateProperties();
230 
231  //PrintPropertiesSources();
232  }
233 
244  protected ArrayList<String> getPropertyFiles( String Patternstring, String PropPath, String PropPathWin )
245  {
246  String loadResoure = "";
247  ArrayList<String> myReturn = new ArrayList<String>();
248 
249  Pattern pattern = Pattern.compile( Patternstring );
250  ArrayList<String> myList = (ArrayList<String>) ResourceList.getResources(pattern);
251 
252 
253  for ( String element : myList)
254  {
255  Log.ResOpenList( element );
256 
257  if ( StringUtils.startsWith( element, PropPath) )
258  {
259  loadResoure = element;
260  }
261  else if ( StringUtils.startsWith( element, PropPathWin) )
262  {
263  loadResoure = element;
264  }
265  else
266  {
267  loadResoure = PropPath + StringUtils.splitByWholeSeparator( element, PropPath )[1];
268  }
269 
270  Log.LogPrint( "--> " + loadResoure );
271  myReturn.add( loadResoure );
272 
273  Log.ResCloseList();
274  }
275 
276  return myReturn;
277  }
278 
279 
290  public void updateProperties()
291  {
292  // 1. Löschen des HProperty Hashs...
293  super.clear();
294 
295  // 2. Laden der Core_Properties
296 
297  Log.ResOpenList( "Update Properties..." );
298  Log.ResOpenList( "Load OKW Core Properties..." );
299 
300  Collections.sort( this.CoreProperties, new Comparator<String>() {
301  @Override
302  public int compare(String s1, String s2) {
303  return s1.compareToIgnoreCase(s2);
304  } } );
305 
306  for( String s : this.CoreProperties )
307  {
308  loadFromResource(s);
309  }
310  Log.ResCloseList();
311 
312 
313  // Laden/Überladen projektspezifiescher Properties aus resourcen
314  Log.ResOpenList( "Load Project Properties..." );
315 
316  Collections.sort( this.ResoursesProperties, new Comparator<String>() {
317  @Override
318  public int compare(String s1, String s2) {
319  return s1.compareToIgnoreCase(s2);
320  } } );
321 
322  for( String s : this.ResoursesProperties )
323  {
324  loadFromResource(s);
325  }
326  Log.ResCloseList();
327 
328 
329  Log.ResOpenList( "Load File Properties..." );
330  for( String s : this.FileProperties )
331  {
332  this.loadFromFile(s);
333  }
334  Log.ResCloseList();
335 
336 
337  // =========================================
338  // run specific properties
339  // =========================================
340  Log.ResOpenList( "Load System Enviroment Vars..." );
341  loadSystemEnviromentVars();
342  Log.ResCloseList();
343 
344  Log.ResOpenList( "Load System Propertie..." );
345  loadSystemProperties();
346  Log.ResCloseList();
347 
348  Log.ResCloseList(); // "Update Properties..."
349  }
350 
351 
370  public Boolean addResource(String fpsResourceName)
371  {
372  Boolean lvbReturn = true;
373 
374  lvbReturn = this.ResoursesProperties.add(fpsResourceName);
375 
377 
378  return lvbReturn;
379  }
380 
381 
399  public void addPropertiesFile(String fpsFileName)
400  {
401  this.FileProperties.add(fpsFileName);
403  return;
404  }
405 
422  protected ArrayList<String> getPropertiesFilesFromResources(String folder) {
423 
424  Log.LogFunctionStartDebug("OKW_Properties.getPropertiesFilesFromResources", "folder", folder);
425 
426  Log.ResOpenList( "Scan folder: " + folder );
427 
428  ArrayList<String> Return = new ArrayList<String>();
429 
430  ClassLoader loader = Thread.currentThread().getContextClassLoader();
431  URL url = loader.getResource(folder);
432  String path = "";
433 
434  try {
435  path = URLDecoder.decode(url.getPath(), Charset.defaultCharset().name() );
436 
437  String urlResourceFolder = path.replaceAll(folder, "");
438 
439  File[] FoldersAndFiles = new File(path).listFiles();
440 
441  for (File FolderOrFile : FoldersAndFiles) {
442  // Wenn es sich um ein Verzeichniss handelt
443  if (FolderOrFile.isDirectory())
444  {
445  // System.out.println( "Folder:" + FolderOrFile.getPath() );
446  String Folder = FolderOrFile.getPath().replaceAll(urlResourceFolder, "");
447  Return.addAll(getPropertiesFilesFromResources(Folder));
448  }
449  else if (FolderOrFile.isFile())
450  {
451  // Nur Aufnahmen wenn mit .properies endet
452  if (FolderOrFile.getName().endsWith((".properties")))
453  {
454  // Log.LogPrint( "Property-File: " + FolderOrFile.getPath());
455 
456  Log.LogPrint( folder + "/" + FolderOrFile.getName().replaceAll(urlResourceFolder, "") );
457  Return.add( folder + "/" + FolderOrFile.getName().replaceAll(urlResourceFolder, ""));
458  }
459  }
460  }
461 
462  }
463  catch (UnsupportedEncodingException e)
464  {
465  // TODO Auto-generated catch block
466  e.printStackTrace();
467  }
468  finally
469  {
470  Log.ResCloseList();
472  }
473  return Return;
474  }
475 
476 
477 
495  private Boolean loadFromResource(String fpsResource )
496  {
497  InputStream overwrites = Thread.currentThread().getContextClassLoader().getResourceAsStream( fpsResource );
498 
499  Boolean lvbReturn = false;
500 
501  String myLogPrint = "Load Resource: " + fpsResource;
502 
503  try
504  {
505  if (overwrites != null)
506  {
507  this.load(overwrites);
508  overwrites.close();
509  lvbReturn = true;
510  myLogPrint = myLogPrint + " - OK";
511  }
512  else
513  {
514  myLogPrint = myLogPrint + " - not found!";
515  }
516  }
517  catch (IOException e)
518  {
519  lvbReturn = false;
520  myLogPrint = myLogPrint + " - failed!";
521  }
522 
523  Log.LogPrint( myLogPrint );
524  return lvbReturn;
525  }
526 
527 
543  private Boolean loadFromFile(String fpsPropertiesFile)
544  {
545  FileInputStream propFile;
546  Boolean lvbReturn = false;
547 
548  try
549  {
550  File myFile = new File(fpsPropertiesFile);
551 
552  if ( myFile.exists() )
553  {
554  propFile = new FileInputStream( new File(fpsPropertiesFile) );
555  this.load(propFile);
556  propFile.close();
557  lvbReturn = true;
558  }
559  else
560  {
561  lvbReturn = false;
562  throw new OKWFileDoesNotExistsException( "File: " + fpsPropertiesFile + " does not exists." );
563  }
564  }
565  catch ( Exception e)
566  {
567  throw new OKWFileDoesNotExistsException( "File: " + fpsPropertiesFile + " does not exists.", e );
568  }
569  return lvbReturn;
570  }
571 
572  // =================================================================================
573  // Listing the currently defined environment variables and system properties in Java
574  // =================================================================================
575  // https://www.javamex.com/tutorials/misc-system/environment-variables-listing.shtml
576  // https://www.baeldung.com/java-system-get-property-vs-system-getenv
577  private void loadSystemEnviromentVars()
578  {
579  Map<String, String> env = System.getenv();
580 
581  Log.ResOpenList( "System Enviroment Vars..." );
582 
583  for (String key : env.keySet())
584  {
585  String value = env.get(key);
586  if (this.containsKey(key))
587  {
588  Log.LogPrint( "Override: " + key + ": '" + this.get(key) + "'");
589  Log.LogPrint( " with: " + key + ": '" + value + "'");
590  }
591  else
592  {
593  Log.LogPrint( " Write: " + key + ": '" + value + "'");
594  }
595  this.setProperty(key, value);
596  }
597 
598  Log.ResCloseList();
599  }
600 
601 
602  // https://www.baeldung.com/java-system-get-property-vs-system-getenv
603  private void loadSystemProperties()
604  {
605  Properties mySystemProperties = System.getProperties();
606 
607  Set<String> keys = mySystemProperties.stringPropertyNames();
608 
609  Log.ResOpenList( "System Properties..." );
610 
611  for ( String key : keys )
612  {
613  String value = (String) mySystemProperties.get(key);
614 
615  if ( this.containsKey( key ) )
616  {
617  Log.LogPrint( "Override: " + key + ": '" + this.get(key) + "'" );
618  Log.LogPrint( " with: " + key + ": '" + value + "'" );
619  }
620  else
621  {
622  Log.LogPrint( " Write: " + key + ": '" + value + "'" );
623  }
624 
625  this.setProperty(key, value);
626  }
627 
628  Log.ResCloseList();
629  }
630 
631 
632  public void PrintProperties()
633  {
634 
635  Log.ResOpenList( "List of Properties..." );
636 
637  SortedMap<Object, Object> sortedSystemProperties = new TreeMap<Object, Object>(this);
638  Set<Object> keySet = sortedSystemProperties.keySet();
639  Iterator<Object> iterator = keySet.iterator();
640 
641  while (iterator.hasNext()) {
642  String propertyName = (String) iterator.next();
643  String propertyValue = this.getProperty(propertyName);
644  Log.LogPrint( propertyName + ": " + propertyValue );
645  }
646 
647  Log.ResCloseList();
648  }
649 
650 
663  {
664 
665  Iterator<String> iterator = null;
666  Log.ResOpenList( "Properties Sources..." );
667 
668  // =============================================
669  // Core sources
670  // =============================================
671  Log.ResOpenList( "Core sources..." );
672  iterator = CoreProperties.iterator();
673 
674  while ( iterator.hasNext())
675  {
676  String mySource = iterator.next();
677  Log.LogPrint( mySource );
678  }
679 
680  Log.ResCloseList();
681 
682  // =============================================
683  // Project specific sources
684  // =============================================
685 
686  Log.ResOpenList( "Project specific sources..." );
687  iterator = ResoursesProperties.iterator();
688 
689  while ( iterator.hasNext())
690  {
691  String mySource = iterator.next();
692  Log.LogPrint( mySource );
693  }
694  Log.ResCloseList();
695 
696  // =============================================
697  // File sources
698  // =============================================
699 
700  Log.ResOpenList( "File sources..." );
701  iterator = FileProperties.iterator();
702 
703  while ( iterator.hasNext())
704  {
705  String mySource = iterator.next();
706  Log.LogPrint( mySource );
707  }
708  Log.ResCloseList();
709 
710 
711  Log.ResCloseList();
712 
713  }
714 
715 
733  public ArrayList<String> getKeysStartswith( String Startwitth ) throws IOException
734  {
735  ArrayList<String> Return = new ArrayList<String>();
736 
737  Set<String> keys = this.stringPropertyNames();
738 
739  for ( String key : keys )
740  {
741  if ( key.startsWith( Startwitth ) )
742  {
743  Return.add( key );
744  }
745  }
746  return Return;
747  }
748 
749 
770  public ArrayList<String> getPropertiesForKeysStartswith( String Startwith ) throws IOException
771  {
772  ArrayList<String> Return = new ArrayList<String>();
773 
774  Set<String> keys = this.stringPropertyNames();
775 
776  for ( String key : keys )
777  {
778  if ( key.startsWith( Startwith ) )
779  {
780  Return.add( this.getProperty( key ) );
781  }
782  }
783  return Return;
784  }
785 
786 
803  @Override
804  public String getProperty(String fpsKey)
805  {
806  String lvsReturn = "";
807  String lvsKey = "";
808 
809  lvsKey = Parser.ParseMe( fpsKey );
810 
811  lvsReturn = super.getProperty( lvsKey );
812  if ( lvsReturn == null )
813  okw.log.Logger_Sngltn.getInstance().LogWarning( "Propertykey (parsed) not found: '" + lvsKey + "'" );
814  else
815  lvsReturn = Parser.ParseMe( lvsReturn );
816 
817  return lvsReturn;
818  }
819 
820 
844  public String getProperty( String fpsKey, String fpsDefault, Object... Parameters )
845  {
846  String lvsReturn = "";
847  String lvsTemplate = "";
848 
849  if (fpsDefault == null)
850  {
851  lvsTemplate = this.getProperty( fpsKey );
852  }
853  else
854  {
855  lvsTemplate = this.getProperty( fpsKey, fpsDefault );
856  }
857 
858  if ( lvsTemplate == null )
859  okw.log.Logger_Sngltn.getInstance().LogWarning( "Propertykey not found: '" + fpsKey + "'" );
860  else
861  {
862  // Iterieren wir über alle Parameters...
863  ST st = new ST( lvsTemplate, '%', '%' );
864 
865  for ( Integer i=0; i<Parameters.length; i++ )
866  {
867  Integer J = i+1;
868  String PName = "P" + J.toString();
869  Object Value = Parameters[i];
870  st.add( PName, Value );
871  }
872 
873  lvsReturn = st.render();
874  }
875 
876  return lvsReturn;
877  }
878 
879 //
880 //
881 // /**
882 // * \~german
883 // * Ermittelt den aktuellen Wert des Propertys gegeben mit dem Schlüssel fpsKey und es werdem $P1$ mit Parameter_1 und $P2$ mit Parameter_2 ersetzt.
884 // *
885 // * @param fpsKey Schlüssel des Propertys.
886 // * @param Parameter_1 Wert, der für $P1$ eingesetzt wird.
887 // * @param Parameter_2 Wert, der für $P2$ eingesetzt wird.
888 // *
889 // * @return Wert des Properties gegeben als fpsKey und $P1$, $P2$ wird mit den Werten von Parameter_1, Parameter_2 ersetzt.
890 // *
891 // * \~english
892 // * Ermittelt den aktuellen Wert des Propertys gegeben mit dem Schlüssel fpsKey und es werdem $P1$ mit Parameter_1 und $P2$ mit Parameter_2 ersetzt.
893 // *
894 // * @param fpsKey Key of Propertys.
895 // * @param Parameter_1 Value that is used for $P1$.
896 // * @param Parameter_2 Value that is used for $P2$.
897 // *
898 // * @return Value of the property given as fpsKey and $P1$, $P2$ will be replaced with the values of parameter_1, parameter_2
899 // *
900 // * \~
901 // * @author Zoltan Hrabovszki
902 // * @date 2019-12-21
903 // */
904 // public String getProperty( String fpsKey, String fpsDefault, Object Parameter_1, Object Parameter_2 )
905 // {
906 // String lvsReturn = "";
907 // String lvsTemplate = "";
908 //
909 // lvsTemplate = this.getProperty( fpsKey );
910 //
911 // if ( lvsTemplate == null )
912 // okw.log.Logger_Sngltn.getInstance().LogWarning( "Propertykey not found: '" + lvsTemplate + "'" );
913 // else
914 // {
915 // ST st = new ST( lvsTemplate, '%', '%' );
916 // st.add( "P1", Parameter_1 );
917 // st.add( "P2", Parameter_2 );
918 // lvsReturn = st.render();
919 // }
920 // return lvsReturn;
921 // }
922 
940  public Boolean getProperty2Boolean(String fpsKey, String fpsDefault )
941  {
942  Boolean lvbReturn = false;
943  String lvsReturn = "";
944 
945  lvsReturn = this.getProperty( fpsKey, fpsDefault );
946  lvbReturn = Boolean.parseBoolean( lvsReturn );
947 
948  return lvbReturn;
949  }
950 }
okw.OKW_Properties.Log
static Logger_Sngltn Log
Zentrale Logger-Klasse stellt Logger-Methoden innerhalb von OKW zur Verfügung.
Definition: OKW_Properties.java:56
okw.OKW_Properties.getPropertyFiles
ArrayList< String > getPropertyFiles(String Patternstring, String PropPath, String PropPathWin)
Es werden die Properties aus dem reasource Verzeichniss geladen.
Definition: OKW_Properties.java:244
okw.ResourceList
list resources available from the classpath @ *
Definition: ResourceList.java:18
okw.OKW_Properties.getProperty
String getProperty(String fpsKey, String fpsDefault, Object... Parameters)
Ermittelt den aktuellen Wert des Propertys gegeben mit dem Schlüssel fpsKey und es wird $P1$ mit dem ...
Definition: OKW_Properties.java:844
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.OKW_Properties.updateProperties
void updateProperties()
Aktualisert/Lädt die Properties in der unter OKW_Properties beschriebene Weise.
Definition: OKW_Properties.java:290
okw.OKW_Properties
Reihenfolge der Resourcen-"Beladung".
Definition: OKW_Properties.java:46
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_Properties.addResource
Boolean addResource(String fpsResourceName)
Eine .Properties-Datei aus dem Resource-Verzeichniss zur Liste OKW_Properties.ResoursesProperties hin...
Definition: OKW_Properties.java:370
okw.ResourceList.getResources
static Collection< String > getResources(final Pattern pattern)
for all elements of java.class.path get a Collection of resources Pattern pattern = Pattern....
Definition: ResourceList.java:34
okw.OKW_Properties.loadFromFile
Boolean loadFromFile(String fpsPropertiesFile)
Lädt die Liste OKW_Properties.ResoursesProperties hinzufügen.
Definition: OKW_Properties.java:543
okw.OKW_Properties.addPropertiesFile
void addPropertiesFile(String fpsFileName)
Eine *.Properties-Datei zur Liste OKW_Properties.FileProperties hinzufügen.
Definition: OKW_Properties.java:399
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_Properties.FileProperties
ArrayList< String > FileProperties
Liste der einzubindenen *.properties-Dateien.
Definition: OKW_Properties.java:95
okw.OKW_Properties.clear
void clear()
Löscht alle Properties-Listen.
Definition: OKW_Properties.java:156
okw.OKW_Properties.getPropertiesFilesFromResources
ArrayList< String > getPropertiesFilesFromResources(String folder)
Erstellt eine Liste der "*.properties"-Dateien des aktuellen Projektes.
Definition: OKW_Properties.java:422
okw.parser.Parser
Definition: Parser.java:14
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_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.exceptions.OKWFileDoesNotExistsException
OKWFileDoesNotExistsException-Ausnahme wird ausgelöst, wenn eine Datei nicht gefunden wird.
Definition: OKWFileDoesNotExistsException.java:55
okw.OKW_Properties.getPropertiesForKeysStartswith
ArrayList< String > getPropertiesForKeysStartswith(String Startwith)
Ermittelt alle Properties der keys, die mit dem gegebenen String Startwitth Anfangen.
Definition: OKW_Properties.java:770
okw.OKW_Properties.PrintPropertiesSources
void PrintPropertiesSources()
Druckt die Gefundenen Propertie Quellen.
Definition: OKW_Properties.java:662
okw.OKW_Properties.getProperty2Boolean
Boolean getProperty2Boolean(String fpsKey, String fpsDefault)
Definition: OKW_Properties.java:940
okw.OKW_Properties.init
void init()
Initialisiert diese Klasse:
Definition: OKW_Properties.java:181
okw.OKW_Properties.loadFromResource
Boolean loadFromResource(String fpsResource)
Lädt die Liste OKW_Properties.ResoursesProperties hinzufügen.
Definition: OKW_Properties.java:495
okw.OKW_Properties.ResoursesProperties
ArrayList< String > ResoursesProperties
Liste der einzubindenen *.properties Dateien, die aus den Resourcen Verzeichnissen.
Definition: OKW_Properties.java:82
okw.OKW_Properties.CoreProperties
ArrayList< String > CoreProperties
Liste der einzubindenen *.properties Dateien, die aus dem Resourcen Verzeichniss der Core.
Definition: OKW_Properties.java:69
okw.OKW_Properties.getKeysStartswith
ArrayList< String > getKeysStartswith(String Startwitth)
Ermittelt alle Properties die mit dem gegebenen String Anfangen.
Definition: OKW_Properties.java:733
okw.log.Logger_Sngltn
Definition: Logger_Sngltn.java:54
okw.parser.Parser.ParseMe
static ArrayList< String > ParseMe(ArrayList< String > fpLsString2Parse)
Parst einen ArayList&lt string&gt, ersetzt die Parser-Schlüsslewörter durch Werte.
Definition: Parser.java:32