
org.kuali.common.aws.s3.model.Bucket Maven / Gradle / Ivy
package org.kuali.common.aws.s3.model;
import javax.validation.constraints.Min;
import org.kuali.common.core.build.ValidatingBuilder;
import org.kuali.common.core.validate.annotation.IdiotProofImmutable;
@IdiotProofImmutable
public final class Bucket {
private final String name;
private final Owner owner;
@Min(0)
private final long created;
private Bucket(Builder builder) {
this.name = builder.name;
this.owner = builder.owner;
this.created = builder.created;
}
public static Bucket copyOf(com.amazonaws.services.s3.model.Bucket bucket) {
String name = bucket.getName();
Owner owner = Owner.copyOf(bucket.getOwner());
long timestamp = bucket.getCreationDate().getTime();
return builder().withName(name).withOwner(owner).withCreated(timestamp).build();
}
public static Builder builder() {
return new Builder();
}
public static class Builder extends ValidatingBuilder {
private String name;
private Owner owner;
private long created;
public Builder withName(String name) {
this.name = name;
return this;
}
public Builder withOwner(Owner owner) {
this.owner = owner;
return this;
}
public Builder withCreated(long created) {
this.created = created;
return this;
}
@Override
public Bucket build() {
return validate(new Bucket(this));
}
}
public String getName() {
return name;
}
public Owner getOwner() {
return owner;
}
public long getCreated() {
return created;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy