
com.amazonaws.services.s3.model.S3ObjectId Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aws-java-sdk-osgi Show documentation
Show all versions of aws-java-sdk-osgi Show documentation
The AWS SDK for Java with support for OSGi. The AWS SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).
/*
* Copyright 2014-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.services.s3.model;
import java.io.Serializable;
import static com.amazonaws.services.s3.model.InstructionFileId.DEFAULT_INSTRUCTION_FILE_SUFFIX;
import static com.amazonaws.services.s3.model.InstructionFileId.DOT;
import org.apache.http.annotation.Immutable;
/**
* An Immutable S3 object identifier. Used to uniquely identify an S3 object.
* Can be instantiated directly, or via the convenient builder
* {@link S3ObjectIdBuilder}.
*/
@Immutable
public class S3ObjectId implements Serializable {
private final String bucket;
private final String key;
/**
* Optional and applicable only for get operation.
*/
private final String versionId;
public S3ObjectId(String bucket, String key) {
this(bucket, key, null);
}
/**
* @param bucket
* the S3 bucket name which must not be null
* @param key
* the S3 key name which must not be null
* @param versionId
* optional version id
*/
public S3ObjectId(String bucket, String key, String versionId) {
if (bucket == null || key == null)
throw new IllegalArgumentException(
"bucket and key must be specified");
this.bucket = bucket;
this.key = key;
this.versionId = versionId;
}
/**
* @param builder
* must not be null.
*/
public S3ObjectId(S3ObjectIdBuilder builder) {
this.bucket = builder.getBucket();
this.key = builder.getKey();
this.versionId = builder.getVersionId();
}
public String getBucket() {
return bucket;
}
public String getKey() {
return key;
}
/**
* Returns the version id which is optionally applicable for S3 get (but not
* put) operations.
*/
public String getVersionId() {
return versionId;
}
/**
* Returns the instruction file id of the default instruction file.
*/
public InstructionFileId instructionFileId() {
return instructionFileId(null);
}
/**
* Returns the instruction file id of an instruction file with the given
* suffix.
*/
public InstructionFileId instructionFileId(String suffix) {
String ifileKey = key + DOT;
ifileKey += (suffix == null || suffix.trim().length() == 0)
? DEFAULT_INSTRUCTION_FILE_SUFFIX
: suffix
;
return new InstructionFileId(bucket, ifileKey, versionId);
}
@Override
public String toString() {
return "bucket: " + bucket + ", key: " + key + ", versionId: "
+ versionId;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy