in src/main/java/com/aliyun/oss/common/parser/RequestMarshallers.java [537:673]
public FixedLengthInputStream marshall(SetBucketLifecycleRequest request) {
StringBuffer xmlBody = new StringBuffer();
xmlBody.append("<LifecycleConfiguration>");
for (LifecycleRule rule : request.getLifecycleRules()) {
xmlBody.append("<Rule>");
if (rule.getId() != null) {
xmlBody.append("<ID>" + rule.getId() + "</ID>");
}
if (rule.getPrefix() != null) {
xmlBody.append("<Prefix>" + rule.getPrefix() + "</Prefix>");
} else {
xmlBody.append("<Prefix></Prefix>");
}
if (rule.hasTags()) {
for (Map.Entry<String, String> tag : rule.getTags().entrySet()) {
xmlBody.append("<Tag>");
xmlBody.append("<Key>" + tag.getKey() + "</Key>");
xmlBody.append("<Value>" + tag.getValue() + "</Value>");
xmlBody.append("</Tag>");
}
}
if(rule.getFilter() != null){
xmlBody.append("<Filter>");
if (rule.getFilter().getObjectSizeGreaterThan() != null) {
xmlBody.append("<ObjectSizeGreaterThan>").append(rule.getFilter().getObjectSizeGreaterThan()).append("</ObjectSizeGreaterThan>");
}
if (rule.getFilter().getObjectSizeLessThan() != null) {
xmlBody.append("<ObjectSizeLessThan>").append(rule.getFilter().getObjectSizeLessThan()).append("</ObjectSizeLessThan>");
}
for(LifecycleNot not : rule.getFilter().getNotList()){
xmlBody.append("<Not>");
xmlBody.append("<Prefix>" + not.getPrefix() + "</Prefix>");
if(not.getTag() != null){
xmlBody.append("<Tag>");
xmlBody.append("<Key>" + not.getTag().getKey() + "</Key>");
xmlBody.append("<Value>" + not.getTag().getValue() + "</Value>");
xmlBody.append("</Tag>");
}
xmlBody.append("</Not>");
}
xmlBody.append("</Filter>");
}
if (rule.getStatus() == RuleStatus.Enabled) {
xmlBody.append("<Status>Enabled</Status>");
} else {
xmlBody.append("<Status>Disabled</Status>");
}
if (rule.getExpirationTime() != null) {
String formatDate = DateUtil.formatIso8601Date(rule.getExpirationTime());
xmlBody.append("<Expiration><Date>" + formatDate + "</Date></Expiration>");
} else if (rule.getExpirationDays() != 0) {
xmlBody.append("<Expiration><Days>" + rule.getExpirationDays() + "</Days></Expiration>");
} else if (rule.getCreatedBeforeDate() != null) {
String formatDate = DateUtil.formatIso8601Date(rule.getCreatedBeforeDate());
xmlBody.append(
"<Expiration><CreatedBeforeDate>" + formatDate + "</CreatedBeforeDate></Expiration>");
} else if (rule.getExpiredDeleteMarker() != null) {
xmlBody.append("<Expiration><ExpiredObjectDeleteMarker>" + rule.getExpiredDeleteMarker() +
"</ExpiredObjectDeleteMarker></Expiration>");
}
if (rule.hasAbortMultipartUpload()) {
AbortMultipartUpload abortMultipartUpload = rule.getAbortMultipartUpload();
if (abortMultipartUpload.getExpirationDays() != 0) {
xmlBody.append("<AbortMultipartUpload><Days>" + abortMultipartUpload.getExpirationDays()
+ "</Days></AbortMultipartUpload>");
} else {
String formatDate = DateUtil.formatIso8601Date(abortMultipartUpload.getCreatedBeforeDate());
xmlBody.append("<AbortMultipartUpload><CreatedBeforeDate>" + formatDate
+ "</CreatedBeforeDate></AbortMultipartUpload>");
}
}
if (rule.hasStorageTransition()) {
for (StorageTransition storageTransition : rule.getStorageTransition()) {
xmlBody.append("<Transition>");
if (storageTransition.hasExpirationDays()) {
xmlBody.append("<Days>" + storageTransition.getExpirationDays() + "</Days>");
} else if (storageTransition.hasCreatedBeforeDate()) {
String formatDate = DateUtil.formatIso8601Date(storageTransition.getCreatedBeforeDate());
xmlBody.append("<CreatedBeforeDate>" + formatDate + "</CreatedBeforeDate>");
}
if (storageTransition.hasIsAccessTime()) {
xmlBody.append("<IsAccessTime>" + storageTransition.getIsAccessTime() + "</IsAccessTime>");
}
if (storageTransition.hasReturnToStdWhenVisit()) {
xmlBody.append("<ReturnToStdWhenVisit>" + storageTransition.getReturnToStdWhenVisit() + "</ReturnToStdWhenVisit>");
}
if (storageTransition.hasAllowSmallFile()) {
xmlBody.append("<AllowSmallFile>" + storageTransition.getAllowSmallFile() + "</AllowSmallFile>");
}
xmlBody.append("<StorageClass>" + storageTransition.getStorageClass() + "</StorageClass>");
xmlBody.append("</Transition>");
}
}
if (rule.hasNoncurrentVersionExpiration()) {
NoncurrentVersionExpiration expiration = rule.getNoncurrentVersionExpiration();
if (expiration.hasNoncurrentDays()) {
xmlBody.append("<NoncurrentVersionExpiration><NoncurrentDays>" + expiration.getNoncurrentDays() +
"</NoncurrentDays></NoncurrentVersionExpiration>");
}
}
if (rule.hasNoncurrentVersionStorageTransitions()) {
for (NoncurrentVersionStorageTransition transition : rule.getNoncurrentVersionStorageTransitions()) {
xmlBody.append("<NoncurrentVersionTransition>");
xmlBody.append("<NoncurrentDays>" + transition.getNoncurrentDays() + "</NoncurrentDays>");
if (transition.hasIsAccessTime()) {
xmlBody.append("<IsAccessTime>" + transition.getIsAccessTime() + "</IsAccessTime>");
}
if (transition.hasReturnToStdWhenVisit()) {
xmlBody.append("<ReturnToStdWhenVisit>" + transition.getReturnToStdWhenVisit() + "</ReturnToStdWhenVisit>");
}
if (transition.hasAllowSmallFile()) {
xmlBody.append("<AllowSmallFile>" + transition.getAllowSmallFile() + "</AllowSmallFile>");
}
xmlBody.append("<StorageClass>" + transition.getStorageClass() + "</StorageClass>");
xmlBody.append("</NoncurrentVersionTransition>");
}
}
xmlBody.append("</Rule>");
}
xmlBody.append("</LifecycleConfiguration>");
return stringMarshaller.marshall(xmlBody.toString());
}