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

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