All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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