package tk.eclipse.plugin.jspeditor.converters; import java.util.Iterator; import java.util.Map; import jp.aonir.fuzzyxml.FuzzyXMLElement; import jp.aonir.fuzzyxml.FuzzyXMLNode; import jp.aonir.fuzzyxml.internal.RenderContext; import tk.eclipse.plugin.htmleditor.ICustomTagConverter; import tk.eclipse.plugin.jspeditor.editors.JSPInfo; import tk.eclipse.plugin.jspeditor.editors.JSPPreviewConverter; public abstract class AbstractCustomTagConverter implements ICustomTagConverter { protected String evalBody(FuzzyXMLNode child, JSPInfo info) { return evalBody(new FuzzyXMLNode[] { child }, info); } protected String evalBody(FuzzyXMLNode[] children, JSPInfo info) { if (children == null) { return ""; } StringBuffer sb = new StringBuffer(); for (int i = 0; i < children.length; i++) { if (children[i] == null) { continue; } else if (children[i] instanceof FuzzyXMLElement) { sb.append(JSPPreviewConverter.processElement((FuzzyXMLElement) children[i], info)); } else { sb.append(children[i].toXMLString(new RenderContext(true))); } } return sb.toString(); } protected String getAttribute(Map attrs) { StringBuffer sb = new StringBuffer(); Iterator ite = attrs.keySet().iterator(); while (ite.hasNext()) { String key = (String) ite.next(); if (key.equals("styleClass")) { sb.append(" class = \"" + attrs.get(key) + "\""); } else { sb.append(" " + key + " = \"" + attrs.get(key) + "\""); } } return sb.toString(); } }