@SuppressWarnings("rawtypes") public ReturnObject getReturnObject(Object object) { ReturnObject returnObject; if (object != null) { if (isPrimitiveObject(object)) { returnObject = ReturnObject.getPrimitiveReturnObject(object); } else if (object == ReflectionEngine.RETURN_VOID) { returnObject = ReturnObject.getVoidReturnObject(); } else if (isList(object)) { String objectId = putNewObject(object); returnObject = ReturnObject.getListReturnObject(objectId, ((List) object).size()); } else if (isMap(object)) { String objectId = putNewObject(object); returnObject = ReturnObject.getMapReturnObject(objectId, ((Map) object).size()); } else if (isArray(object)) { String objectId = putNewObject(object); returnObject = ReturnObject.getArrayReturnObject(objectId, Array.getLength(object)); } else if (isSet(object)) { String objectId = putNewObject(object); returnObject = ReturnObject.getSetReturnObject(objectId, ((Set) object).size()); } else if (isIterator(object)) { String objectId = putNewObject(object); returnObject = ReturnObject.getIteratorReturnObject(objectId); } else { String objectId = putNewObject(object); returnObject = ReturnObject.getReferenceReturnObject(objectId); } } else { returnObject = ReturnObject.getNullReturnObject(); } return returnObject; }