in src/main/java/com/aliyun/oss/internal/ResponseParsers.java [1356:1438]
public static ListObjectsV2Result parseListObjectsV2(InputStream responseBody) throws ResponseParseException {
try {
Element root = getXmlRootElement(responseBody);
ListObjectsV2Result result = new ListObjectsV2Result();
result.setBucketName(root.getChildText("Name"));
result.setMaxKeys(Integer.valueOf(root.getChildText("MaxKeys")));
result.setTruncated(Boolean.valueOf(root.getChildText("IsTruncated")));
result.setKeyCount(Integer.valueOf(root.getChildText("KeyCount")));
if (root.getChild("Prefix") != null) {
String prefix = root.getChildText("Prefix");
result.setPrefix(isNullOrEmpty(prefix) ? null : prefix);
}
if (root.getChild("Delimiter") != null) {
String delimiter = root.getChildText("Delimiter");
result.setDelimiter(isNullOrEmpty(delimiter) ? null : delimiter);
}
if (root.getChild("ContinuationToken") != null) {
String continuationToken = root.getChildText("ContinuationToken");
result.setContinuationToken(isNullOrEmpty(continuationToken) ? null : continuationToken);
}
if (root.getChild("NextContinuationToken") != null) {
String nextContinuationToken = root.getChildText("NextContinuationToken");
result.setNextContinuationToken(isNullOrEmpty(nextContinuationToken) ? null : nextContinuationToken);
}
if (root.getChild("EncodingType") != null) {
String encodeType = root.getChildText("EncodingType");
result.setEncodingType(isNullOrEmpty(encodeType) ? null : encodeType);
}
if (root.getChild("StartAfter") != null) {
String startAfter = root.getChildText("StartAfter");
result.setStartAfter(isNullOrEmpty(startAfter) ? null : startAfter);
}
List<Element> objectSummaryElems = root.getChildren("Contents");
for (Element elem : objectSummaryElems) {
OSSObjectSummary ossObjectSummary = new OSSObjectSummary();
ossObjectSummary.setKey(elem.getChildText("Key"));
ossObjectSummary.setETag(trimQuotes(elem.getChildText("ETag")));
ossObjectSummary.setLastModified(DateUtil.parseIso8601Date(elem.getChildText("LastModified")));
ossObjectSummary.setSize(Long.valueOf(elem.getChildText("Size")));
ossObjectSummary.setStorageClass(elem.getChildText("StorageClass"));
ossObjectSummary.setRestoreInfo(elem.getChildText("RestoreInfo"));
ossObjectSummary.setBucketName(result.getBucketName());
if (elem.getChild("Type") != null) {
ossObjectSummary.setType(elem.getChildText("Type"));
}
if (elem.getChild("Owner") != null) {
String id = elem.getChild("Owner").getChildText("ID");
String displayName = elem.getChild("Owner").getChildText("DisplayName");
ossObjectSummary.setOwner(new Owner(id, displayName));
}
result.addObjectSummary(ossObjectSummary);
}
List<Element> commonPrefixesElems = root.getChildren("CommonPrefixes");
for (Element elem : commonPrefixesElems) {
String prefix = elem.getChildText("Prefix");
if (!isNullOrEmpty(prefix)) {
result.addCommonPrefix(prefix);
}
}
return result;
} catch (JDOMParseException e) {
throw new ResponseParseException(e.getPartialDocument() + ": " + e.getMessage(), e);
} catch (Exception e) {
throw new ResponseParseException(e.getMessage(), e);
}
}