} else if (parent instanceof ChildNode) {
ChildNode t = (ChildNode)parent;
if (t.data.getValue() instanceof MirroredObjectInstance) {
MirroredObjectInstance o = (MirroredObjectInstance)t.data.getValue();
if (o instanceof MirroredQuorumArray) {
MirroredQuorumArray array = (MirroredQuorumArray)o;
MirroredValue[] values = array.getArray();
for (int x = 0; x < values.length; x++) {
ArrayElementNode n = new ArrayElementNode();
n.index = x;
n.parent = array;
n.data = values[x];
kids.add(n);
}
} else {
Iterator<FieldVariable> fields = o.getFields();
while (fields.hasNext()) {
ChildNode n = new ChildNode();
n.data = fields.next();
n.parent = o;
kids.add(n);
}
}
}
} else if (parent instanceof ArrayElementNode) {
ArrayElementNode t = (ArrayElementNode)parent;
if (t.data instanceof MirroredObjectInstance) {
MirroredObjectInstance o = (MirroredObjectInstance)t.data;
if (o instanceof MirroredQuorumArray) {
MirroredQuorumArray array = (MirroredQuorumArray)o;
MirroredValue[] values = array.getArray();
for (int x = 0; x < values.length; x++) {
ArrayElementNode n = new ArrayElementNode();
n.index = x;
n.parent = array;
n.data = values[x];