/* * Agiato: A simple no frill Cassandra API * Author: Pranab Ghosh * * Licensed under the Apache License, Version 2.0 (the "License"); you * may not use this file except in compliance with the License. You may * obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. */ package agiato.cassandra.data; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * Dynamic object * @author pranab * */ public class ObjectNode extends NamedObject { private List<ObjectNode> children = new ArrayList<ObjectNode>(); public ObjectNode(String name) { super(name); } public ObjectNode(String name, Object value) { super(name, value); } public void addChild(ObjectNode child) { children.add(child); } public void addListChild(List<ObjectNode> listChild) { int i = 0; ObjectNode parent; for (ObjectNode child : listChild) { parent = new ObjectNode("[" + i + "]"); addChild(parent); parent.addChild(child); ++i; } } public void addListChild(ObjectNode child, int index) { int i = 0; ObjectNode parent = new ObjectNode("[" + index + "]"); addChild(parent); parent.addChild(child); } public void addMapChild(Map<String, ObjectNode> mapChild) { ObjectNode parent; for (String key : mapChild.keySet()) { parent = new ObjectNode("{" + key + "}"); addChild(parent); parent.addChild(mapChild.get(key)); } } public boolean hasChildren() { return !children.isEmpty(); } public List<ObjectNode> getChildren() { return children; } }