package railo.commons.io.res.type.s3;
import java.io.IOException;
import java.io.InputStream;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import org.xml.sax.SAXException;
public final class Content implements S3Info {
private String key;
private long lastModified;
private String eTag;
private long size;
private String storageClass;
private String ownerIdKey;
private String ownerDisplayName;
private String bucketName;
private final S3 s3;
private boolean truncated;
/**
* @return the truncated
*/
public boolean isTruncated() {
return truncated;
}
/**
* @return the bucketName
*/
public String getBucketName() {
return bucketName;
}
/**
* @param bucketName the bucketName to set
*/
public void setBucketName(String bucketName) {
this.bucketName = bucketName;
}
public Content(S3 s3) {
this.s3=s3;
}
/**
* @return the key
*/
public String getKey() {
return key;
}
/**
* @param key the key to set
*/
public void setKey(String key) {
this.key = key;
}
/**
* @return the lastModified
*/
public long getLastModified() {
return lastModified;
}
/**
* @param lastModified the lastModified to set
*/
public void setLastModified(long lastModified) {
this.lastModified = lastModified;
}
/**
* @return the eTag
*/
public String getETag() {
return eTag;
}
/**
* @param tag the eTag to set
*/
public void setETag(String tag) {
eTag = tag;
}
/**
* @return the size
*/
public long getSize() {
return size;
}
/**
* @param size the size to set
*/
public void setSize(long size) {
this.size = size;
}
/**
* @return the storageClass
*/
public String getStorageClass() {
return storageClass;
}
/**
* @param storageClass the storageClass to set
*/
public void setStorageClass(String storageClass) {
this.storageClass = storageClass;
}
/**
* @return the ownerIdKey
*/
public String getOwnerIdKey() {
return ownerIdKey;
}
/**
* @param ownerIdKey the ownerIdKey to set
*/
public void setOwnerIdKey(String ownerIdKey) {
this.ownerIdKey = ownerIdKey;
}
/**
* @return the ownerDisplayName
*/
public String getOwnerDisplayName() {
return ownerDisplayName;
}
/**
* @param ownerDisplayName the ownerDisplayName to set
*/
public void setOwnerDisplayName(String ownerDisplayName) {
this.ownerDisplayName = ownerDisplayName;
}
public String getLink(int secondsValid) throws InvalidKeyException, NoSuchAlgorithmException, IOException {
return s3.getObjectLink(bucketName, key, secondsValid);
}
public InputStream getInputStream() throws InvalidKeyException, NoSuchAlgorithmException, IOException, SAXException {
return s3.getInputStream(bucketName, key);
}
@Override
public String toString() {
return "eTag:"+eTag+";key:"+key+";ownerDisplayName:"+ownerDisplayName+";ownerIdKey:"+ownerIdKey+";size:"+size+";storageClass:"+storageClass+";";
}
@Override
public boolean exists() {
return true;
}
@Override
public boolean isDirectory() {
return getSize()==0 && getKey().endsWith("/");
}
@Override
public boolean isFile() {
return getSize()>0 || !getKey().endsWith("/");
}
/**
* @param truncated the truncated to set
*/
public void setTruncated(boolean truncated) {
this.truncated = truncated;
}
}