All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.swm.gwt.client.i18n.I18NUtils Maven / Gradle / Ivy

There is a newer version: 3.1
Show newest version
package de.swm.gwt.client.i18n;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.google.gwt.i18n.client.DateTimeFormat;



/**
 * Hilfklasse im I18N Texte mit Variablen zu versehen.
 * 
 * @author Wiese.Daniel 
* copyright (C) 2010, SWM Services GmbH * */ public final class I18NUtils { private static final String DATE_FORMAT = "dd.MM.yyyy"; private final DateTimeFormat dtf = DateTimeFormat.getFormat(DATE_FORMAT); private final String toCustomize; private final Map variableReplacementMap = new HashMap(); /** * Utility constructor. * * @param toCustomize * der zu customizende I18N String. */ private I18NUtils(String toCustomize) { this.toCustomize = toCustomize; } /** * Fuegt eine Ersetzung der Variablen hinzu. * * @param name * der Variablen Name * @param value * der Wert. * @return leifert die Intance fuer das Inlining. */ public I18NUtils replaceVariable(String name, String value) { variableReplacementMap.put(name, value); return this; } /** * Fuegt eine Ersetzung der Variablen hinzu. * * @param name * der Variablen Name * @param value * der Wert. * @return leifert die Intance fuer das Inlining. */ public I18NUtils replaceVariable(String name, Date value) { variableReplacementMap.put(name, dtf.format(value)); return this; } /** * Fuegt eine Ersetzung der Variablen hinzu. * * @param name * der Variablen Name * @param values * werte als Liste. * @return leifert die Intance fuer das Inlining. */ public I18NUtils replaceVariable(String name, List values) { String result = ""; for (int i = 0; i < values.size(); i++) { final String value = values.get(i); result += value; if ((i + 1) < values.size()) { result += ", "; } } variableReplacementMap.put(name, result); return this; } /** * Fuegt eine Ersetzung der Variablen hinzu. * * @param name * der Variablen Name * @param value * der Wert. * @return leifert die Intance fuer das Inlining. */ public I18NUtils replaceVariable(String name, long value) { return replaceVariable(name, String.valueOf(value)); } /** * Fuegt eine Ersetzung der Variablen hinzu. * * @param name * der Variablen Name * @param value * der Wert. * @return leifert die Intance fuer das Inlining. */ public I18NUtils replaceVariable(String name, Integer value) { if (value != null) { return replaceVariable(name, String.valueOf(value)); } return this; } /** * Satrtet das Cutomizen eine I18N Strings. * * @param toCustomize * der zu customizende I18N String. * @return die instance fuer das Inlining. */ public static I18NUtils customize(String toCustomize) { return new I18NUtils(toCustomize); } @Override public String toString() { String result = this.toCustomize; for (String variable : this.variableReplacementMap.keySet()) { if (this.variableReplacementMap.get(variable) != null) { result = result.replace("$" + variable + "$", this.variableReplacementMap.get(variable)); } } return result; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy