/*
* This file is part of JGAP.
*
* JGAP offers a dual license model containing the LGPL as well as the MPL.
*
* For licensing information please see the file license.txt included with JGAP
* or have a look at the top of class org.jgap.Chromosome which representatively
* includes the JGAP license policy applicable for any file delivered with JGAP.
*/
package org.jgap.data;
import java.util.*;
/**
* Element owning a tag name and holding attributes.
* Used by the DataTreeBuilder.
*
* @author Klaus Meffert
* @since 2.0
*/
public class DataElement
implements IDataElement {
/** String containing the CVS revision. Read out via reflection!*/
private final static String CVS_REVISION = "$Revision: 1.6 $";
private IDataElementList m_elements;
private Map m_attributes;
private String m_tagName;
public DataElement(final String a_tagName) {
m_elements = new DataElementList();
m_attributes = new HashMap();
m_tagName = a_tagName;
}
public void setAttribute(final String a_name, final String a_value)
throws Exception {
m_attributes.put(a_name, a_value);
}
public void appendChild(final IDataElement a_newChild)
throws Exception {
m_elements.add(a_newChild);
}
public String getTagName() {
return m_tagName;
}
public IDataElementList getElementsByTagName(final String a_name) {
IDataElementList ret = new DataElementList();
for (int i = 0; i < m_elements.getLength(); i++) {
if (m_elements.item(i).getTagName().equals(a_name)) {
ret.add(m_elements.item(i));
}
}
return ret;
}
public short getNodeType() {
return 1;
}
public String getNodeValue()
throws Exception {
return null;
}
public IDataElementList getChildNodes() {
return m_elements;
}
public String getAttribute(final String a_name) {
return (String) m_attributes.get(a_name);
}
public Map getAttributes() {
return m_attributes;
}
}