public static UriInfoImpl constructDeepReadForRoot(EdmEntitySet edmEntitySet, String serviceName, List<KeyPredicate> keyPredicates) throws ODataException {
UriInfoImpl uriInfoForRead = new UriInfoImpl();
uriInfoForRead.setStartEntitySet(edmEntitySet);
uriInfoForRead.setTargetEntitySet(edmEntitySet);
Map<String,List<String>> compositionTree = CSNUtil.getCompositionTree(serviceName, edmEntitySet.getName());
List<ArrayList<NavigationPropertySegment>> expandOption = new ArrayList<>();
constructTreeExpand(edmEntitySet, serviceName, compositionTree, new ArrayList<>(), expandOption);
uriInfoForRead.setKeyPredicates(keyPredicates);
uriInfoForRead.setTargetType(edmEntitySet.getEntityType());
uriInfoForRead.setExpand(expandOption);
return uriInfoForRead;
}