package name.abuchen.portfolio.model;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class Bookmark
{
private String label;
private String pattern;
public Bookmark(String label, String pattern)
{
this.label = label;
this.pattern = pattern;
}
public void setLabel(String label)
{
this.label = label;
}
public String getLabel()
{
return label;
}
public void setPattern(String pattern)
{
this.pattern = pattern;
}
public String getPattern()
{
return pattern;
}
public boolean isSeparator()
{
return "-".equals(label); //$NON-NLS-1$
}
public String constructURL(Security security)
{
String url = pattern.replace("{tickerSymbol}", encode(security.getTickerSymbol())); //$NON-NLS-1$
url = url.replace("{isin}", encode(security.getIsin())); //$NON-NLS-1$
url = url.replace("{wkn}", encode(security.getWkn())); //$NON-NLS-1$
url = url.replace("{name}", encode(security.getName())); //$NON-NLS-1$
return url;
}
private String encode(String s)
{
try
{
return s == null ? "" : URLEncoder.encode(s, StandardCharsets.UTF_8.name()); //$NON-NLS-1$
}
catch (UnsupportedEncodingException e)
{
// should not happen as UTF-8 is always supported
throw new UnsupportedOperationException(e);
}
}
}