| Code with Finding: |
class Writer {
private void processObjectLiteral(Node node, JsonML currentParent) {
JsonML element = new JsonML(TagType.ObjectExpr);
currentParent.appendChild(element);
for (Node key : node.children()) {
Node value = key.getFirstChild();
JsonML item;
Object name;
switch (key.getType()) {
case Token.STRING:
item = new JsonML(TagType.DataProp);
name = key.getString();
break;
case Token.NUMBER:
item = new JsonML(TagType.DataProp);
name = key.getDouble();
break;
case Token.GET:
item = new JsonML(TagType.GetterProp);
name = key.getString();
break;
case Token.SET:
item = new JsonML(TagType.SetterProp);
name = key.getString();
break;
default:
throw new IllegalArgumentException("Illegal type of node.");
}
item.setAttribute(TagAttr.NAME, name);
processNode(value, item);
element.appendChild(item);
}
}
}
|