package org.itsnat.droid.impl.dom;
import org.itsnat.droid.impl.util.StringUtil;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* Created by jmarranz on 03/02/2016.
*/
public class DOMAttributeMap
{
protected LinkedHashMap<String,DOMAttr> attribMapList;
public DOMAttributeMap()
{
}
public Map<String,DOMAttr> getDOMAttributes()
{
return attribMapList; // Puede ser null
}
public boolean hasAttributes()
{
return (attribMapList != null && !attribMapList.isEmpty());
}
public void initDOMAttribMap(int count) // Método opcional para optimizar memoria si se conoce el número exacto de atributos
{
this.attribMapList = new LinkedHashMap<String,DOMAttr>(count);
}
public void setDOMAttribute(DOMAttr attr)
{
if (attribMapList == null) this.attribMapList = new LinkedHashMap<String,DOMAttr>();
String namespaceURI = attr.getNamespaceURI();
String name = attr.getName(); // El nombre devuelto no contiene el namespace
String key = toKey(namespaceURI, name);
attribMapList.put(key,attr);
}
public DOMAttr getDOMAttribute(String namespaceURI, String name)
{
if (attribMapList == null)
return null;
String key = toKey(namespaceURI, name);
return attribMapList.get(key);
}
public void removeDOMAttribute(String namespaceURI,String name) // No se llama nunca pero lo dejamos por coherencia
{
if (attribMapList == null) return;
String key = toKey(namespaceURI, name);
attribMapList.remove(key);
}
private static String toKey(String namespaceURI, String name)
{
return StringUtil.isEmpty(namespaceURI) ? name : (namespaceURI + ":" + name);
}
}