*/
public class ERXBinaryPListRestParser implements IERXRestParser {
protected ERXRestRequestNode createRequestNodeForObject(String name, Object object, boolean rootNode, ERXRestFormat.Delegate delegate) {
ERXRestRequestNode requestNode = new ERXRestRequestNode(name, rootNode);
if (object == null) {
// just leave the value null
}
else if (object instanceof List) {
requestNode.setArray(true);
List list = (List) object;
for (Object obj : list) {
if (ERXRestUtils.isPrimitive(obj)) {
ERXRestRequestNode primitiveChild = new ERXRestRequestNode(null, object, false);
requestNode.addChild(primitiveChild);
delegate.nodeDidParse(primitiveChild);
}
else {
requestNode.addChild(createRequestNodeForObject(null, obj, true, delegate));
}
}
}
else if (object instanceof Map) {
Map map = (Map) object;
for (Object key : map.keySet()) {
String strKey = (String) key;
Object value = map.get(key);
if (ERXRestUtils.isPrimitive(value)) {
ERXRestRequestNode primitiveChild = new ERXRestRequestNode(strKey, value, false);
requestNode.addChild(primitiveChild);
delegate.nodeDidParse(primitiveChild);
}
else {
requestNode.addChild(createRequestNodeForObject(strKey, value, false, delegate));