77 lines
2.2 KiB
Java
77 lines
2.2 KiB
Java
package org.gcube.socialnetworking.token;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
import org.apache.commons.codec.binary.Base64;
|
|
|
|
public class ReplaceableToken extends Token {
|
|
|
|
protected boolean replaced;
|
|
protected String tokenReplacement;
|
|
|
|
public static String createHref(String baseURL, String attributeName, String attributeValue) {
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
stringBuilder.append(baseURL);
|
|
stringBuilder.append("?");
|
|
stringBuilder.append(new String(Base64.encodeBase64(attributeName.getBytes())));
|
|
stringBuilder.append("=");
|
|
stringBuilder.append(new String(Base64.encodeBase64(attributeValue.getBytes())));
|
|
return stringBuilder.toString();
|
|
|
|
}
|
|
|
|
public static String createLink(String linkTarget, String linkValue, Map<String,String> additionalAttributes) {
|
|
Map<String,String> attributes = new HashMap<>();
|
|
if(additionalAttributes != null) {
|
|
attributes.putAll(additionalAttributes);
|
|
}
|
|
attributes.put("class", "link");
|
|
if(!attributes.containsKey("style")) {
|
|
attributes.put("style", "font-size:14px;");
|
|
}
|
|
attributes.put("href", linkTarget);
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
stringBuilder.append("<a ");
|
|
for(String key : attributes.keySet()) {
|
|
stringBuilder.append(key);
|
|
stringBuilder.append("=\"");
|
|
stringBuilder.append(attributes.get(key));
|
|
stringBuilder.append("\" ");
|
|
}
|
|
stringBuilder.append(">");
|
|
stringBuilder.append(linkValue);
|
|
stringBuilder.append("</a>");
|
|
return stringBuilder.toString();
|
|
}
|
|
|
|
public ReplaceableToken(String token, String delimiter, int start, int end) {
|
|
super(token, delimiter, start, end);
|
|
this.tokenReplacement = token;
|
|
replaced = false;
|
|
}
|
|
|
|
public ReplaceableToken(Token token) {
|
|
this(token.getToken(), token.getDelimiter(), token.getStart(), token.getEnd());
|
|
}
|
|
|
|
public ReplaceableToken(Token token, String tokenReplacement) {
|
|
this(token);
|
|
this.tokenReplacement = tokenReplacement;
|
|
}
|
|
|
|
@Override
|
|
public String getDelimiter() {
|
|
return delimiter.replaceAll("(\r\n|\n)", "<br/>");
|
|
}
|
|
|
|
public String getTokenReplacement() {
|
|
if(!replaced) {
|
|
tokenReplacement = tokenReplacement.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">",
|
|
">");
|
|
replaced = true;
|
|
}
|
|
return tokenReplacement;
|
|
}
|
|
}
|