org.jets3t.service.model
Class GSObject

java.lang.Object
  extended by org.jets3t.service.model.BaseStorageItem
      extended by org.jets3t.service.model.StorageObject
          extended by org.jets3t.service.model.GSObject
All Implemented Interfaces:
Cloneable

public class GSObject
extends StorageObject
implements Cloneable

A Google Storage object.

Author:
James Murty

Field Summary
 
Fields inherited from class org.jets3t.service.model.StorageObject
METADATA_HEADER_HASH_MD5, METADATA_HEADER_ORIGINAL_HASH_MD5
 
Fields inherited from class org.jets3t.service.model.BaseStorageItem
METADATA_HEADER_CONTENT_DISPOSITION, METADATA_HEADER_CONTENT_ENCODING, METADATA_HEADER_CONTENT_LANGUAGE, METADATA_HEADER_CONTENT_LENGTH, METADATA_HEADER_CONTENT_MD5, METADATA_HEADER_CONTENT_TYPE, METADATA_HEADER_CREATION_DATE, METADATA_HEADER_DATE, METADATA_HEADER_ETAG, METADATA_HEADER_LAST_MODIFIED_DATE
 
Constructor Summary
GSObject()
          Create an object without any associated information whatsoever.
GSObject(File file)
          Create an object representing a file.
GSObject(String key)
          Create an object without any associated data, and no associated bucket.
GSObject(String key, String dataString)
          Create an object representing text data.
 
Method Summary
static GSObject[] cast(StorageObject[] objects)
           
 Object clone()
           
 GSAccessControlList getAcl()
           
 void setAcl(GSAccessControlList acl)
          Set the object's ACL.
 String toString()
           
 
Methods inherited from class org.jets3t.service.model.StorageObject
addAllMetadata, addMetadata, closeDataInputStream, getBucketName, getContentDisposition, getContentEncoding, getContentLanguage, getContentLength, getContentType, getDataInputFile, getDataInputStream, getETag, getKey, getLastModifiedDate, getMd5HashAsBase64, getMd5HashAsHex, getModifiableMetadata, getStorageClass, isDirectoryPlaceholder, isMetadataComplete, setAcl, setBucketName, setContentDisposition, setContentEncoding, setContentLanguage, setContentLength, setContentType, setDataInputFile, setDataInputStream, setETag, setKey, setLastModifiedDate, setMd5Hash, setMetadataComplete, setStorageClass, verifyData, verifyData, verifyData
 
Methods inherited from class org.jets3t.service.model.BaseStorageItem
addMetadata, addMetadata, containsMetadata, getMetadata, getMetadataMap, getName, getOwner, removeMetadata, replaceAllMetadata, setName, setOwner
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

GSObject

public GSObject(File file)
         throws NoSuchAlgorithmException,
                IOException
Create an object representing a file. The object is initialised with the file's name as its key, the file's content as its data, a content type based on the file's extension (see Mimetypes), and a content length matching the file's size. The file's MD5 hash value is also calculated and provided to the service so it can verify that no data are corrupted in transit.

NOTE: The automatic calculation of a file's MD5 hash digest as performed by this constructor could take some time for large files, or for many small ones.

Parameters:
file - the file the object will represent. This file must exist and be readable.
Throws:
IOException - when an i/o error occurred reading the file
NoSuchAlgorithmException - when this JRE doesn't support the MD5 hash algorithm

GSObject

public GSObject(String key,
                String dataString)
         throws NoSuchAlgorithmException,
                IOException
Create an object representing text data. The object is initialized with the given key, the given string as its data content (encoded as UTF-8), a content type of text/plain; charset=utf-8, and a content length matching the string's length. The given string's MD5 hash value is also calculated and provided to the service so it can verify that no data are corrupted in transit.

NOTE: The automatic calculation of the MD5 hash digest as performed by this constructor could take some time for large strings, or for many small ones.

Parameters:
key - the key name for the object.
dataString - the text data the object will contain. Text data will be encoded as UTF-8. This string cannot be null.
Throws:
IOException
NoSuchAlgorithmException - when this JRE doesn't support the MD5 hash algorithm

GSObject

public GSObject(String key)
Create an object without any associated data, and no associated bucket.

Parameters:
key - the key name for the object.

GSObject

public GSObject()
Create an object without any associated information whatsoever.

Method Detail

toString

public String toString()
Overrides:
toString in class StorageObject

getAcl

public GSAccessControlList getAcl()
Overrides:
getAcl in class StorageObject
Returns:
the object's ACL, or null if it is unknown.

setAcl

public void setAcl(GSAccessControlList acl)
Set the object's ACL.

Parameters:
acl -

clone

public Object clone()
Overrides:
clone in class StorageObject

cast

public static GSObject[] cast(StorageObject[] objects)