package nl.ipo.cds.nagios.ast; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Set; import nl.ipo.cds.nagios.parser.ParserContext; public class ObjectNode extends ASTNode { private static final long serialVersionUID = 3886947863425585991L; private Map<String, KVPNode> keyValuePairs; public ObjectNode (final ParserContext parserContext, int line, int column, final Collection<KVPNode> kvps) { super (parserContext, line, column); this.keyValuePairs = new HashMap<String, KVPNode> (); for (KVPNode node: kvps) { keyValuePairs.put(node.getKey ().getValue (), node); } } public Collection<KVPNode> getKeyValuePairs () { return keyValuePairs.values (); } public Set<String> getKeys () { return keyValuePairs.keySet (); } public boolean hasValue (final String key) { return keyValuePairs.containsKey (key); } public KVPNode getKeyValuePair (final String key) { return keyValuePairs.get (key); } public String getValue (final String key) { final KVPNode node = keyValuePairs.get (key); if (node == null) { return null; } return node.getValue ().getValue (); } }