package org.kisst.props4j;
import java.util.HashSet;
import java.util.Set;
import org.kisst.util.XmlNode;
public class XmlNodeProps extends PropsBase {
private final XmlNode node;
public XmlNodeProps(XmlNode node) {
this.node = node;
}
@Override public Props getParent() { return null; } // TODO
@Override
public Object get(String key, Object defaultValue) {
key=key.replace('.', '/');
XmlNode result=node.getChild(key);
if (result==null)
return defaultValue;
if (result.getChildren().size()==0)
return result.getText();
return new XmlNodeProps(result);
}
public Set<String> keySet() {
HashSet<String> result= new HashSet<String>();
for (XmlNode child: node.getChildren())
result.add(child.getName());
return result;
}
@Override public Iterable<String> keys() { return keySet();}
@Override public int nrofKeys() { return keySet().size();}
}