@SuppressWarnings("unchecked")
    private StringBuilder traverse(Object object, String path) throws IllegalAccessException, InvocationTargetException {
        StringBuilder ret = new StringBuilder();
        if (isSkipObject(object)) {
            return ret;
        }
        Method[] methods = object.getClass().getMethods();
        if (object instanceof List) {
            List list = (List) object;
            int size = list.size();
            if (size > 0 || includeEmptyLists) {
                ret.append(buildEquals(String.valueOf(size), path + ".size()"));
            }
            for (int i = 0; i < list.size(); i++) {
                Object listElement = list.get(i);
                ret.append(processResult(null, listElement, buildPathListEntry(path, i, listElement), false));

            }
        } else {
            for (Method currMethod : methods) {
                if (isRelevantGetter(currMethod)) {
                    Object result = null;
                    try {
                        result = currMethod.invoke(object, (Object[]) null);
                    } catch (Exception e) {
                        //getter exceptions ignorieren
                    }
                    try {
                        // ret.append(processResult(result, buildPath(curr,
                        // result,
                        // path)));
                        ret.append(processResult(currMethod, result, path, false));

                    } catch (Exception e) {
                        e.printStackTrace();
                        throw new RuntimeException(e);
                    }

                }
            }
        }
        return ret;
    }