package org.openedit.xml;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Element;
import org.openedit.Data;
import com.openedit.hittracker.HitTracker;
public class XmlHitTracker extends HitTracker
{
protected XmlFile fieldXmlFile;
public XmlHitTracker()
{
}
public XmlHitTracker(XmlFile inXmlFile)
{
setXmlFile(inXmlFile);
}
public boolean contains(Object inHit)
{
return getXmlFile().getElements().contains(inHit);
}
public Data get(int inCount)
{
Element element = (Element)getXmlFile().getElements().get(inCount);
if( element == null)
{
return null;
}
return new ElementData(element);
}
//Use getByID
public Object get(String inId) throws IOException
{
return getById(inId);
}
public Object getById(String inId)
{
Element element = getXmlFile().getElementById(inId);
if( element == null)
{
return null;
}
return toData(element);
}
public int size()
{
return getXmlFile().size();
}
public Iterator iterator()
{
return new ElementDataIterator(getXmlFile().getElements());
}
public XmlFile getXmlFile()
{
return fieldXmlFile;
}
public void setXmlFile(XmlFile inXmlFile)
{
fieldXmlFile = inXmlFile;
setPage(1);
}
public List keys()
{
return getXmlFile().keys();
}
public Data toData(Object inHit)
{
if( inHit instanceof Data)
{
return (Data)inHit;
}
return new ElementData(inHit);
}
public String getValue(Object inHit, String inString)
{
Element target = (Element)inHit;
return target.attributeValue(inString);
}
}