package de.itemis.tooling.xturtle.ui.hover; import java.util.ArrayList; import java.util.List; import com.google.common.base.Joiner; import com.google.common.base.Splitter; class TurtleHoverInfoCollector { private List<String> htmlDescriptions=new ArrayList<String>(); private List<String> descriptions=new ArrayList<String>(); public void addDescriptionUserData(String nullableData){ if(nullableData!=null){ List<String> descriptionsToAddToHtml=new ArrayList<String>(); for (String string : Splitter.on(",,").split(nullableData)) { String simplified=simplify(string); if(!descriptions.contains(simplified)){ descriptionsToAddToHtml.add(simplified); } } if(!descriptionsToAddToHtml.isEmpty()){ descriptions.addAll(descriptionsToAddToHtml); addToHtmlDescriptions(descriptionsToAddToHtml); } } } private void addToHtmlDescriptions(List<String> descriptionsToAdd){ StringBuilder b=new StringBuilder("<dl>"); for (String desc : descriptionsToAdd) { b.append("<dd>"); b.append(desc); b.append("</dd>"); } b.append("</dl>"); htmlDescriptions.add(b.toString()); } //remove surrounding quotation marks and escaped quotes private String simplify(String value) { String resultString=""; if(value!=null){ if(value.startsWith("\"\"\"")){ resultString=value.substring(3, value.length()-3); }else{ resultString=value.substring(1, value.length()-1); } } return resultString.replaceAll("\\\\\"", "\"").replaceAll("\n", "</br>"); } public String getAsHtml(){ return Joiner.on("").join(htmlDescriptions); } }