82 lines
2.5 KiB
Plaintext
Executable File
82 lines
2.5 KiB
Plaintext
Executable File
package com.fp.common.messages;
|
|
|
|
import java.io.StringWriter;
|
|
import java.util.Locale;
|
|
import java.util.Properties;
|
|
|
|
import org.apache.velocity.VelocityContext;
|
|
import org.apache.velocity.app.Velocity;
|
|
import org.apache.velocity.app.VelocityEngine;
|
|
import org.apache.velocity.runtime.RuntimeConstants;
|
|
import org.apache.velocity.tools.generic.DateTool;
|
|
import org.apache.velocity.tools.generic.MathTool;
|
|
import org.apache.velocity.tools.generic.NumberTool;
|
|
|
|
import com.fp.common.logger.APPLogger;
|
|
|
|
public class MessageUtil {
|
|
private String pattern;
|
|
|
|
private final VelocityEngine ve;
|
|
|
|
VelocityContext context = new VelocityContext();
|
|
|
|
public MessageUtil(String pLanguage) throws Exception {
|
|
Velocity.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM, this);
|
|
Velocity.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS, "org.apache.velocity.runtime.log.SimpleLog4JLogSystem");
|
|
this.ve = new VelocityEngine();
|
|
this.ve.init();
|
|
this.init(pLanguage);
|
|
}
|
|
|
|
public MessageUtil(String pLanguage, Properties p) throws Exception {
|
|
this.ve = new VelocityEngine();
|
|
this.ve.init(p);
|
|
this.init(pLanguage);
|
|
}
|
|
|
|
private void init(String pLanguage) {
|
|
this.context.put("date", new DateTool());
|
|
this.context.put("math", new MathTool());
|
|
this.context.put("number", new NumberTool());
|
|
try {
|
|
|
|
//this.context.put("builder", Class.forName("com.fp.builder.templates.MessageTemplates").newInstance());
|
|
} catch (Exception e) {
|
|
APPLogger.getLogger().warn(e, e);
|
|
}
|
|
try {
|
|
|
|
this.context.put("general", Class.forName("com.fp.base.persistence.util.helper.GeneralDescriptions").newInstance());
|
|
} catch (Exception e) {
|
|
APPLogger.getLogger().warn(e, e);
|
|
}
|
|
|
|
this.context.put("locate", new Locale(pLanguage.toLowerCase()));
|
|
}
|
|
|
|
public MessageUtil(String pLanguage, String pPattern) throws Exception {
|
|
this(pLanguage);
|
|
this.pattern = pPattern;
|
|
}
|
|
|
|
public void setPattern(String pPattern) {
|
|
this.pattern = pPattern;
|
|
}
|
|
|
|
public void setValue(String pName, Object pValue) {
|
|
this.context.put(pName, pValue);
|
|
}
|
|
|
|
public String getMessage() throws Exception {
|
|
StringWriter writer = new StringWriter();
|
|
try {
|
|
this.ve.evaluate(this.context, writer, "", this.pattern);
|
|
} finally {
|
|
writer.close();
|
|
}
|
|
return writer.toString();
|
|
}
|
|
|
|
}
|