OpenKeyWord  Build_ID: 457, Datum: 01.02.2020 07:45:48
Dont repeat yourself. - Do it once and only once!
OKW_Helper.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.util.*;
43 
44 import javax.xml.xpath.XPathExpressionException;
45 
46 import okw.exceptions.*;
47 import okw.log.Logger_Sngltn;
48 
62 public class OKW_Helper
63 {
64 
69 
73  private static LogMessenger LM = new LogMessenger("OKW_Helper");
74 
99  public static String Boolean2String( Boolean fpbTrueOrFalse )
100  {
101  String lvsReturn = "";
102 
103  Log.LogFunctionStartDebug("OKW_Helper.Boolean2String", "fpbTrueOrFalse", fpbTrueOrFalse.toString());
104 
105  try
106  {
107  if (fpbTrueOrFalse)
108  {
109  lvsReturn = "true";
110  }
111  else
112  {
113  lvsReturn = "false";
114  }
115  }
116  finally
117  {
118  Log.LogFunctionEndDebug(lvsReturn);
119  }
120 
121  return lvsReturn;
122  }
123 
196  public static String getLeftFromDelimiterNumber( String fpsSource, String fpsDelimiter, Integer fpiCount ) throws XPathExpressionException
197  {
198  String lvsReturn = "";
199  ArrayList<String> lvLsSplitedSource = null;
200 
201  int RangeMin = 1;
202  int RangeMax = 1;
203 
204  try
205  {
206  Log.LogFunctionStartDebug("OKW_Helper.GetLeftFromDelimiterNumber", "fpsSource", fpsSource, "fpsDelimiter",
207  fpsDelimiter, "fpiCount", fpiCount.toString());
208 
209  if ( ! "".equals( fpsDelimiter ) )
210  {
211  lvLsSplitedSource = splitString(fpsSource, fpsDelimiter);
212 
213  // Gültigen Werte bereich berechnen:
214  RangeMax = lvLsSplitedSource.size() - 1;
215  RangeMin = 1;
216 
217  // 1. Prüfen ob Split Zahl <= Count, anderefalls Exception
218  // auslösen...
219  if ((RangeMin <= fpiCount) & (fpiCount <= RangeMax))
220  {
221  // 2. Dann bauen wir den String auf
222  lvsReturn = lvLsSplitedSource.get(0);
223 
224  for (int i = 1; i < fpiCount; i++)
225  {
226  lvsReturn = lvsReturn + fpsDelimiter + lvLsSplitedSource.get(i);
227  }
228  }
229  else
230  {
231  String lvsLM = LM.GetMessage("GetLeftFromDelimiterNumber", "OKWDelimiterCountOutOfRangeException",
232  fpiCount, RangeMax);
233  throw new IndexOutOfBoundsException(lvsLM);
234  }
235  }
236  else
237  {
238  String lvsLM = LM.GetMessage("GetLeftFromDelimiterNumber", "OKWDelimiterIsEmptyException");
239  throw new IllegalArgumentException(lvsLM);
240  }
241  }
242  finally
243  {
244  Log.LogFunctionEndDebug(lvsReturn);
245  }
246 
247  return lvsReturn;
248  }
249 
304  public static String getRightFromDelimiterNumber( String fpsSource, String fpsDelimiter, Integer fpiCount ) throws XPathExpressionException
305  {
306  String lvsReturn = "";
307  List<String> lvLsSplitedSource = null;
308  int RangeMin = 1;
309  int RangeMax = 1;
310  try
311  {
312  Log.LogFunctionStartDebug("OKW_Helper.GetRigthFromDelimiterNumber", "fpsSource", fpsSource, "fpsDelimiter",
313  fpsDelimiter, "fpiCount", fpiCount.toString());
314 
315  if ( ! "".equals( fpsDelimiter ))
316  {
317  lvLsSplitedSource = splitString(fpsSource, fpsDelimiter);
318 
319  // Gültigen Werte bereich berechnen:
320  RangeMax = lvLsSplitedSource.size() - 1;
321  RangeMin = 1;
322 
323  // 1. Prüfen ob Split Zahl <= Count, anderefalls Exception
324  // auslösen...
325  if ((RangeMin <= fpiCount) & (fpiCount <= RangeMax))
326  {
327  // 2. Dann bauen wir den String auf
328  lvsReturn = lvLsSplitedSource.get(fpiCount);
329 
330  for (int i = fpiCount + 1; i < lvLsSplitedSource.size(); i++)
331  {
332  lvsReturn = lvsReturn + fpsDelimiter + lvLsSplitedSource.get(i);
333  }
334  }
335  else
336  {
337  String lvsLM = LM.GetMessage("GetRightFromDelimiterNumber", "OKWDelimiterCountOutOfRangeException",
338  fpiCount, RangeMax);
339  throw new IndexOutOfBoundsException(lvsLM);
340  }
341  }
342  else
343  {
344  String lvsLM = LM.GetMessage("GetRightFromDelimiterNumber", "OKWDelimiterIsEmptyException");
345  throw new IllegalArgumentException(lvsLM);
346  }
347  }
348  finally
349  {
350  Log.LogFunctionEndDebug(lvsReturn);
351  }
352 
353  return lvsReturn;
354  }
355 
375  public static Boolean compareListString( List<String> ListString1, List<String> ListString2 )
376  {
377  Boolean lvbReturn = true;
378 
379  Log.LogFunctionStartDebug("OKW_Helper.ListStringCompare", "ListString1", ListString1.toString(), "ListString2",
380  ListString2.toString());
381 
382  try
383  {
384  // HAben beide Listen
385  if (ListString1.size() == ListString2.size())
386  {
387  for (int i = 0; i < ListString1.size(); i++)
388  {
389  if (ListString1.get(i) != ListString2.get(i))
390  {
391  // ungleich daher abbrechen und false zurückliefern.
392  Log.LogPrintDebug(ListString1.get(i) + "<>" + ListString2.get(i));
393  lvbReturn = false;
394  break;
395  }
396  else
397  {
398  lvbReturn = true;
399  }
400  }
401  }
402  else
403  {
404  lvbReturn = false;
405  }
406  }
407  finally
408  {
409  Log.LogFunctionEndDebug(lvbReturn);
410  }
411 
412  return lvbReturn;
413  }
414 
461  public static String concatListString( ArrayList<String> fps_ListString2Concat, String fps_Delimiter )
462  {
463  String lvsReturn = "";
464 
465  Log.LogFunctionStartDebug("OKW_Helper.ListStringConcat", "fps_ListString2Concat",
466  fps_ListString2Concat.toString(), "fps_Separator", fps_Delimiter);
467 
468  try
469  {
470  StringBuilder sb = new StringBuilder();
471 
472  for (int i=0; i<fps_ListString2Concat.size(); i++)
473  {
474  if (i > 0)
475  {
476  sb.append(fps_Delimiter);
477  }
478 
479  sb.append(fps_ListString2Concat.get(i));
480  }
481 
482  lvsReturn = sb.toString();
483  }
484  finally
485  {
486  Log.LogFunctionEndDebug(lvsReturn);
487  }
488 
489  return lvsReturn;
490  }
491 
509  public static Boolean matchString( String fpsPattern, String fpsStringToMatch )
510  {
511  // Variables:
512  Boolean lvbReturn = false;
513 
514  // Action:
515  try
516  {
517  Log.LogFunctionStartDebug("OKW_Helper.MatchStr", "String fpsPattern", fpsPattern, "String fpsStringToMatch",
518  fpsStringToMatch);
519 
520  // Replace the * with an .* and the ? with a dot. Put ^ at the
521  // beginning and a $ at the end
522  // c#:String pattern = "^" + Regex.Escape(fpsPattern).Replace("\\*",
523  // ".*").Replace("\\?", ".") + "$";
524  String pattern = "^" + fpsPattern.replace("*", ".*").replace("?", ".") + "$";
525 
526  // c#: Regex regex;
527  // c#: regex = new Regex(pattern);
528 
529  // C#: lvb_Return = regex.IsMatch(fpsStringToMatch);
530  lvbReturn = fpsStringToMatch.matches(pattern);
531  }
532  finally
533  {
534  Log.LogFunctionEndDebug(lvbReturn);
535  }
536 
537  return lvbReturn;
538  }
539 
557  public static Boolean matchStrIgnoreCase( String fpsPattern, String fpsStringToMatch )
558  {
559  // Variables:
560  Boolean lvbReturn = false;
561 
562  // Action:
563  try
564  {
565  Log.LogFunctionStartDebug("OKW_Helper.MatchStrIgnoreCase", "String fpsPattern", fpsPattern,
566  "String fpsStringToMatch", fpsStringToMatch);
567 
568  //
569  // Replace the * with an .* and the ? with a dot. Put ^ at the
570  // beginning and a $ at the end
571  // c#:String pattern = "^" + Regex.Escape(fpsPattern).Replace("\\*",
572  // ".*").Replace("\\?", ".") + "$";
573  String pattern = "^" + fpsPattern.replace("*", ".*").replace("?", ".") + "$";
574 
575  // Now, run the Regex as you already know
576  // c#: Regex regex;
577  // c#: regex = new Regex(pattern, RegexOptions.IgnoreCase);
578 
579  // C#: lvb_Return = regex.IsMatch(fpsStringToMatch);
580  lvbReturn = fpsStringToMatch.matches("(?i:" + pattern + ")");
581  }
582  finally
583  {
584  Log.LogFunctionEndDebug(lvbReturn);
585  }
586 
587  return lvbReturn;
588  }
589 
615  public static String removeBeginEndQuotations( String fps_StringinQuotations )
616  {
617 
618  String lvsReturn = fps_StringinQuotations.replaceAll("^\"|\"$", "");
619 
620  return lvsReturn;
621  }
622 
639  public static ArrayList<String> StringArray2ListStr( String[] fpsStringArray )
640  {
641  Log.LogFunctionStartDebug("OKW_Helper.StrArray2ListStr", "fpsStringArray", fpsStringArray.toString());
642 
643  ArrayList<String> lvls_Splited = new ArrayList<String>();
644  lvls_Splited.clear();
645 
646  try
647  {
648  for (String lvsElement : fpsStringArray)
649  {
650  lvls_Splited.add(lvsElement);
651  }
652  }
653  finally
654  {
655  Log.LogFunctionEndDebug(lvls_Splited);
656  }
657 
658  return lvls_Splited;
659  }
660 
692 
693  public static Boolean String2Boolean( String fpsTrueOrFalse ) throws XPathExpressionException
694  {
695  Boolean lvbReturn = false;
696  Boolean bOK = false;
697 
698  String lvsTrueOrFalse = fpsTrueOrFalse.toLowerCase();
699 
700  Log.LogFunctionStartDebug("OKW_Helper.String2Boolean", "fpsTrueOrFalse", fpsTrueOrFalse);
701 
702  try
703  {
704  if ( "true".equals( lvsTrueOrFalse ) )
705  {
706  lvbReturn = true;
707  bOK = true;
708  }
709  else if ( "false".equals( lvsTrueOrFalse ) )
710  {
711  lvbReturn = false;
712  bOK = true;
713  }
714  else
715  {
716  // alles andere löst ein OKWNotAllowedValueException aus
717  bOK = false;
718 
719  String lvsLM = LM.GetMessage("String2Boolean", "OKWNotAllowedValueException", fpsTrueOrFalse);
720  throw new OKWNotAllowedValueException(lvsLM);
721  }
722  }
723  finally
724  {
725  if (bOK)
726  {
727  Log.LogFunctionEndDebug(lvbReturn);
728  }
729  else
730  {
732  }
733  }
734 
735  return lvbReturn;
736  }
737 
759 
781  public static ArrayList<String> splitString(String fpsString2Split, String fpsSeparator)
782  {
783  ArrayList<String> SplitedList = new ArrayList<String>();
784  int offset = 0;
785 
786  Log.LogFunctionStartDebug("OKW_Helper.StrSplit", "fpsString2Split", fpsString2Split, "fpsSeparator",
787  fpsSeparator);
788 
789  try
790  {
791  while (true)
792  {
793  int index = fpsString2Split.indexOf(fpsSeparator, offset);
794  if (index == -1)
795  {
796  SplitedList.add(fpsString2Split.substring(offset));
797  break;
798  }
799  else
800  {
801  SplitedList.add(fpsString2Split.substring(offset, index));
802  offset = (index + fpsSeparator.length());
803  }
804  }
805  }
806  finally
807  {
808  Log.LogFunctionEndDebug(SplitedList);
809  }
810 
811  return SplitedList;
812  }
813 
814 
816  public static String repeatString( char c, Integer n )
817  {
818  StringBuilder lvsReturn = new StringBuilder();
819 
820  for (Integer x = 0; x < n; x++)
821  lvsReturn.append(c);
822 
823  return lvsReturn.toString();
824  }
825 
826 
828  public static String repeatString( String c, Integer n )
829  {
830  StringBuilder lvsReturn = new StringBuilder();
831 
832  for (Integer x = 0; x < n; x++)
833  lvsReturn.append(c);
834 
835  return lvsReturn.toString();
836  }
837 
853  public static Boolean isStringNullOrEmpty( String fpsString)
854  {
855  // Variables
856  Boolean lvbReturn = true;
857 
858  // Action
859  if(fpsString != null && !fpsString.isEmpty())
860  {
861  lvbReturn = false;
862  }
863 
864  // Return
865  return lvbReturn;
866  }
867 }
okw.OKW_Helper.StringArray2ListStr
static ArrayList< String > StringArray2ListStr(String[] fpsStringArray)
Konvertiert einen String-Array nach List-String.
Definition: OKW_Helper.java:639
okw.OKW_Helper.getLeftFromDelimiterNumber
static String getLeftFromDelimiterNumber(String fpsSource, String fpsDelimiter, Integer fpiCount)
Der String wird am fpiCount-ten Trennzeichen abgetrennt und die linke Hälfte des String wird zurückge...
Definition: OKW_Helper.java:196
okw.OKW_Helper.Boolean2String
static String Boolean2String(Boolean fpbTrueOrFalse)
Konvertiert Boolean true/false nach String "true"/"false".
Definition: OKW_Helper.java:99
okw.LogMessenger
LogMessenger liest Log-Meldungen sprachspezifisch für die im Konstruktor gegeben Klasse aus der Zugeh...
Definition: LogMessenger.java:84
okw.OKW_Helper.Log
static Logger_Sngltn Log
Definition: OKW_Helper.java:68
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_Helper.String2Boolean
static Boolean String2Boolean(String fpsTrueOrFalse)
Konvertiert String "true"/"false" nach Boolean true/false.
Definition: OKW_Helper.java:693
okw.OKW_Helper.removeBeginEndQuotations
static String removeBeginEndQuotations(String fps_StringinQuotations)
Entfernt Anführungstriche " am Anfang und am Ende.
Definition: OKW_Helper.java:615
okw.log.Logger_Sngltn.LogFunctionStartDebug
void LogFunctionStartDebug(String fps_FunctionName, String... fpsParameter)
LogFunctionStartDebug:
Definition: Logger_Sngltn.java:311
okw.OKW_Helper.compareListString
static Boolean compareListString(List< String > ListString1, List< String > ListString2)
Vergleicht zwei ListStrings inhaltlich miteinander.
Definition: OKW_Helper.java:375
okw.OKW_Helper.matchStrIgnoreCase
static Boolean matchStrIgnoreCase(String fpsPattern, String fpsStringToMatch)
Quelle: http://stackoverflow.com/questions/6907720/need-to-perform-wildcard-etc-search-on-a-String-us...
Definition: OKW_Helper.java:557
okw.OKW_Helper.concatListString
static String concatListString(ArrayList< String > fps_ListString2Concat, String fps_Delimiter)
Wandelt List<String> in einen String um und trennt die Werte durch das vorgegebene Trennzeichen vonei...
Definition: OKW_Helper.java:461
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.log.Logger_Sngltn.LogPrintDebug
void LogPrintDebug(String fpsMessage)
Loggt eine Nachricht.
Definition: Logger_Sngltn.java:520
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_Helper
Klasse enthält OKW-Hilfsfunktionen.
Definition: OKW_Helper.java:62
okw.OKW_Helper.getRightFromDelimiterNumber
static String getRightFromDelimiterNumber(String fpsSource, String fpsDelimiter, Integer fpiCount)
Schneidet fpsSource am fpiCount-ten fpsDelimiter ab und liefert den rechten Teil des String zurück.
Definition: OKW_Helper.java:304
okw.OKW_Helper.repeatString
static String repeatString(String c, Integer n)
Definition: OKW_Helper.java:828
okw.OKW_Helper.matchString
static Boolean matchString(String fpsPattern, String fpsStringToMatch)
Quelle: http://stackoverflow.com/questions/6907720/need-to-perform-wildcard-etc-search-on-a-String-us...
Definition: OKW_Helper.java:509
okw.exceptions.OKWNotAllowedValueException
OKWNotAllowedValueException-Ausnahme wird ausgelöst, wenn ein gegebener Wert im Schlüsselwort nicht e...
Definition: OKWNotAllowedValueException.java:63
okw.log.Logger_Sngltn
Definition: Logger_Sngltn.java:54
okw.OKW_Helper.splitString
static ArrayList< String > splitString(String fpsString2Split, String fpsSeparator)
Splittet einen String am angegebenen Separator auf.
Definition: OKW_Helper.java:781
okw.OKW_Helper.LM
static LogMessenger LM
Definition: OKW_Helper.java:73
okw.OKW_Helper.repeatString
static String repeatString(char c, Integer n)
Definition: OKW_Helper.java:816