package core.aws.resource.s3; import core.aws.resource.Resource; import core.aws.resource.ResourceStatus; import core.aws.resource.Resources; import core.aws.task.s3.CreateBucketTask; import core.aws.task.s3.DeleteBucketTask; import core.aws.task.s3.DescribeBucketTask; import core.aws.util.Asserts; import core.aws.workflow.Tasks; /** * @author neo */ public class Bucket extends Resource { public String name; public com.amazonaws.services.s3.model.Bucket remoteBucket; public Bucket(String id) { super(id); } @Override public void validate(Resources resources) { if (status == ResourceStatus.LOCAL_ONLY) { Asserts.isTrue(name.length() <= 63, "max length of bucket name is 63"); Asserts.isFalse(name.contains("_"), "bucket name can not contain '_'"); } } @Override protected void createTasks(Tasks tasks) { tasks.add(new CreateBucketTask(this)); } @Override protected void deleteTasks(Tasks tasks) { tasks.add(new DeleteBucketTask(this)); } @Override protected void describeTasks(Tasks tasks) { tasks.add(new DescribeBucketTask(this)); } }