package org.objectstyle.wolips.bindings.wod; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; public class HtmlElementCache { private Map<String, List<HtmlElementName>> _htmlElementCache; private Set<String> _vars; public HtmlElementCache() { _htmlElementCache = new HashMap<String, List<HtmlElementName>>(); _vars = new HashSet<String>(); } public void addHtmlElement(HtmlElementName htmlElement) { List<HtmlElementName> htmlElementNames = _htmlElementCache.get(htmlElement.getName()); if (htmlElementNames == null) { htmlElementNames = new LinkedList<HtmlElementName>(); _htmlElementCache.put(htmlElement.getName(), htmlElementNames); } htmlElementNames.add(htmlElement); } public boolean containsElementNamed(String name) { List<HtmlElementName> htmlElementNames = _htmlElementCache.get(name); return htmlElementNames != null && htmlElementNames.size() > 0; } public List<HtmlElementName> getHtmlElementNames(String name) { return _htmlElementCache.get(name); } public Set<String> elementNames() { return _htmlElementCache.keySet(); } public Set<String> getVars() { return _vars; } public void clearCache() { _htmlElementCache.clear(); _vars.clear(); } }