com.ksyun.ks3.service.response.GetBucketLifecycleResponse Maven / Gradle / Ivy
package com.ksyun.ks3.service.response;
import com.ksyun.ks3.dto.BucketLifecycleConfiguration;
import com.ksyun.ks3.dto.BucketLifecycleConfiguration.NoncurrentVersionTransition;
import com.ksyun.ks3.dto.BucketLifecycleConfiguration.Rule;
import com.ksyun.ks3.dto.BucketLifecycleConfiguration.Status;
import com.ksyun.ks3.dto.BucketLifecycleConfiguration.Transition;
import com.ksyun.ks3.dto.ObjectTag;
import com.ksyun.ks3.service.common.StorageClass;
import com.ksyun.ks3.utils.DateUtils;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import java.util.ArrayList;
import java.util.List;
public class GetBucketLifecycleResponse extends Ks3WebServiceXmlResponse {
private Rule rule = null;
private List rules = new ArrayList();
private List storageTransList;
private List noncurrentVersionTransitionList;
private Transition transition = null;
private NoncurrentVersionTransition noncurrentVersionTransition = null;
private List tagSet;
private ObjectTag tagging;
@Override
public void startDocument() throws SAXException {
result = new BucketLifecycleConfiguration();
}
@Override
public void startEle(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
String tag = getTag();
if ("Rule".equals(tag)) {
rule = new Rule();
storageTransList = new ArrayList();
noncurrentVersionTransitionList = new ArrayList();
tagSet = new ArrayList();
} else if ("Transition".equals(tag)) {
transition = new Transition();
} else if ("NoncurrentVersionTransition".equals(tag)) {
noncurrentVersionTransition = new NoncurrentVersionTransition();
} else if ("Tag".equals(tag)) {
tagging = new ObjectTag();
}
}
@Override
public void endEle(String uri, String localName, String qName)
throws SAXException {
String tag = getTag();
if ("Rule".equals(tag)) {
if (storageTransList != null && storageTransList.size() > 0) {
rule.setStorageTransitions(storageTransList);
}
if (noncurrentVersionTransitionList != null && noncurrentVersionTransitionList.size() > 0) {
rule.setNoncurrentVersionTransitions(noncurrentVersionTransitionList);
}
if (tagSet != null && tagSet.size() > 0) {
rule.setTagSet(tagSet);
}
rules.add(rule);
} else if ("LifecycleConfiguration".equals(tag)) {
result.setRules(rules);
} else if ("Transition".equals(tag)) {
storageTransList.add(transition);
} else if ("NoncurrentVersionTransition".equals(tag)) {
noncurrentVersionTransitionList.add(noncurrentVersionTransition);
} else if ("Tag".equals(tag)) {
if (tagSet != null) {
tagSet.add(tagging);
}
}
}
@Override
public void string(String s) {
String tag = getTag();
if ("ID".equals(tag)) {
rule.setId(s);
} else if ("Prefix".equals(tag)) {
rule.setPrefix(s);
} else if ("Status".equals(tag)) {
rule.setStatus(Status.str2Status(s));
} else if ("Expiration".equals(getTag(1))) {
if ("Date".equals(tag)) {
rule.setExpirationDate(DateUtils.convertStr2Date(s));
} else if ("Days".equals(tag)) {
rule.setExpirationInDays(Integer.valueOf(s));
} else if ("ExpiredObjectDeleteMarker".equals(tag)) {
rule.setExpiredObjectDeleteMarker(Boolean.valueOf(s));
}
} else if ("NoncurrentVersionExpiration".equals(getTag(1))) {
if ("NoncurrentDays".equals(tag)) {
rule.setNoncurrentVersionExpirationInDays(Integer.valueOf(s));
}
} else if ("Transition".equals(getTag(1))) {
if ("Date".equals(tag)) {
transition.setTransDate(DateUtils.convertStr2Date(s));
} else if ("Days".equals(tag)) {
transition.setTransDays(Integer.valueOf(s));
} else if ("StorageClass".equals(tag)) {
transition.setStorageClass(StorageClass.fromValue(s));
}
} else if ("NoncurrentVersionTransition".equals(getTag(1))) {
if ("NoncurrentDays".equals(tag)) {
noncurrentVersionTransition.setDays(Integer.valueOf(s));
} else if ("StorageClass".equals(tag)) {
noncurrentVersionTransition.setStorageClass(StorageClass.fromValue(s));
}
} else if ("Tag".equals(getTag(1))) {
if ("Key".equals(tag)) {
tagging.setKey(s);
} else if ("Value".equals(tag)) {
tagging.setValue(s);
}
}
}
@Override
public void preHandle() {
}
public int[] expectedStatus() {
return new int[]{200};
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy