From ad67840f6fb14ee2b2999ef5281309b6df41bf35 Mon Sep 17 00:00:00 2001 From: Christian Klinger Date: Tue, 26 Jul 2016 16:28:44 +0200 Subject: basic version of MailTemplate. --- .../org/openslx/bwlp/sat/util/MailTemplate.java | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/MailTemplate.java (limited to 'dozentenmodulserver/src/main/java/org') diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/MailTemplate.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/MailTemplate.java new file mode 100644 index 00000000..368c43ec --- /dev/null +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/MailTemplate.java @@ -0,0 +1,70 @@ +package org.openslx.bwlp.sat.util; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.Map; + +/** + * stores a mail template and offers methods to place variables + **/ +public class MailTemplate { + + private ArrayList snippets = new ArrayList<>(); + private ArrayList identifiers = new ArrayList<>(); + + public MailTemplate(String raw_template) { + this.parseTemplate(raw_template); + } + + public String format(Map vars) { + Iterator it_snippets = snippets.iterator(); + Iterator it_identifiers = identifiers.iterator(); + + StringBuilder sb = new StringBuilder(); + + while (true) { + boolean progress = false; + if (it_snippets.hasNext()) { + sb.append(it_snippets.next()); + progress = true; + } + if (it_identifiers.hasNext()) { + sb.append(vars.get(it_identifiers.next())); + progress = true; + } + if ( progress == false) { + break; + } + } + return sb.toString(); + } + + /* + * read the raw string from % to % and the fragments either into snippets or + * variables + */ + private void parseTemplate(String raw) { + int i = 0; + while (true) { + int begin = raw.indexOf("%", i); + int end = raw.indexOf("%", begin + 1); + + if (begin == -1) { + /* no variable anymore, so just add a snippet until the end */ + String snippet = raw.substring(i); + this.snippets.add(snippet); + break; + } + String snippet = raw.substring(i, begin); + String identifier = raw.substring(begin + 1, end); + + this.snippets.add(snippet); + this.identifiers.add(identifier); + + i = end + 1; + + } + } + + +} -- cgit v1.2.3-55-g7522