Nützliche Klassen

Funktionsprinzipien und Implementierungen von Kernkomponenten

MCRTextResolver

Ab MyCoRe 2.1 gibt es die neue Klasse MCRTextResolver. Diese ermöglicht es frei definierbare Variablen und MyCoRe-Properties (im folgenden unter dem Begriff Variablen zusammengefasst) in Texten aufzulösen. Hierzu ein kleines Beispiel:

  
  „Ich programmiere in {MCR.NameOfProject}.“
      

Würde man diesen Text innerhalb des DocPortal Projekts mit dem MCRTextResolver auflösen, entsteht folgender Text: „Ich programmiere in DocPortal“. Inhalte in geschweiften Klammern werden vom MCRTextResolver als Variablen erkannt und entsprechend aufgelöst.

Bedingungen – eckige Klammern []

Eckige Klammern ermöglichen es Variablenbedingung zu definieren. Der gesamte Inhalt in eckigen Klammern wird nur dann verwendet, wenn alle enthaltenen Variablen nicht null und nicht leer sind. Als Beispiel soll „[Mein Nachname ist {lastname}].“ dienen. Der gesamte Inhalt wird nur aufgelöst, wenn die Variable lastname existiert. Andernfalls wird der Inhalt ignoriert.

Eine valide Datums Angabe könnte damit zum Beispiel folgendermaßen realisiert werden: „{year}[-{month}[-{day}]]“.

Escaping - \

Der MCRTextResolver unterstützt Escaping um vordefinierte Symbole wie {}[] zu maskieren.

API

Der Zugriff über die API ist denkbar einfach:

  
  MCRTextResolver resolver=new MCRTextResolver();
  String result=resolver.resolve("Ich programmiere in {MCR.NameOfProject}.");
      

Variablen können entweder mit Hilfe einer Map an den Konstruktor übergeben, oder per addVariable(name, value) gesetzt werden.

  
  Map<String, String> vars=new Hashtable<String, String>();
  vars.put("firstname", "Max");
  vars.put("lastname", "Mustermann");
  MCRTextResolver resolver=new MCRTextResolver(vars);
  resolver.addVariable("birthdate", "1977-04-04");
  String result=resolver.resolve("Name: {firstname} {lastname}; Geburtstag: {birthdate}");