package com.agilecontrol.nea.core.web.interpreter; import com.agilecontrol.nea.core.schema.TableManager; import com.agilecontrol.nea.core.util.MessagesHolder; import com.agilecontrol.nea.util.ColumnInterpreter; import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.util.Locale; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class URLInterpreter implements ColumnInterpreter, Serializable { private static final long serialVersionUID = -8129191202424361047L; private static Logger logger = LoggerFactory.getLogger(URLInterpreter.class); private String linktext; private Locale defaultLocale; public String parseValue(Object value, Locale locale) { if(value == null) { return ""; } else { String v = value.toString(); String desc = null; int idx = v.lastIndexOf("&f=", v.length()); if(idx == -1) { idx = v.lastIndexOf("/f/", v.length()); } if(idx > 0) { try { desc = URLDecoder.decode(v.substring(idx + 3), "UTF-8"); } catch (UnsupportedEncodingException var7) { logger.error("fail to parse filename from " + v, var7); } } if(desc == null) { if(this.defaultLocale == null) { this.defaultLocale = TableManager.getDefaultSysLocale(); this.linktext = MessagesHolder.getInstance().getMessage(locale, "click-to-open-attach"); } if(this.defaultLocale.equals(locale)) { desc = this.linktext; } else { desc = MessagesHolder.getInstance().getMessage(locale, "click-to-open-attach"); } } return "" + desc + ""; } } public Object getValue(String str, Locale locale) { return str; } }