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

com.microsoft.azure.storage.file.FileProperties Maven / Gradle / Ivy

/**
 * Copyright Microsoft Corporation
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License 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.microsoft.azure.storage.file;

import java.util.Date;

import com.microsoft.azure.storage.AccessCondition;

/**
 * Represents the system properties for a file.
 */
public final class FileProperties {
    /**
     * Represents the cache-control value stored for the file.
     */
    private String cacheControl;

    /**
     * Represents the content-disposition value stored for the file. If this field has not been set for the file, the
     * field returns null.
     */
    private String contentDisposition;

    /**
     * Represents the content-encoding value stored for the file. If this field has not been set for the file, the field
     * returns null.
     */
    private String contentEncoding;

    /**
     * Represents the content-language value stored for the file. If this field has not been set for the file, the field
     * returns null.
     */
    private String contentLanguage;

    /**
     * Represents the content MD5 value stored for the file.
     */
    private String contentMD5;

    /**
     * Represents the content type value stored for the file. If this field has not been set for the file, the field
     * returns null.
     */
    private String contentType;
    
    /**
     * Represents the state of the most recent or pending copy operation.
     */
    private CopyState copyState;

    /**
     * Represents the size, in bytes, of the file.
     */
    private long length;

    /**
     * Represents the file's ETag value.
     */
    private String etag;

    /**
     * Represents the last-modified time for the file.
     */
    private Date lastModified;

    /**
     * Represents the file's server-side encryption status.
     */
    private boolean serverEncrypted;

    /**
     * Creates an instance of the FileProperties class.
     */
    public FileProperties() {
        // No op
    }

    /**
     * Creates an instance of the FileProperties class by copying values from another instance of the
     * FileProperties class.
     * 
     * @param other
     *            A FileProperties object which represents the file properties to copy.
     */
    public FileProperties(final FileProperties other) {
        this.cacheControl = other.cacheControl;
        this.contentDisposition = other.contentDisposition;
        this.contentEncoding = other.contentEncoding;
        this.contentLanguage = other.contentLanguage;
        this.contentMD5 = other.contentMD5;
        this.contentType = other.contentType;
        this.etag = other.etag;
        this.length = other.length;
        this.lastModified = other.lastModified;
        this.serverEncrypted = other.serverEncrypted;
    }

    /**
     * Gets the cache control value for the file.
     * 
     * @return A String which represents the content cache control value for the file.
     */
    public String getCacheControl() {
        return this.cacheControl;
    }

    /**
     * Gets the content disposition value for the file.
     * 
     * @return A String which represents the content disposition, or null if content
     *         disposition has not been set on the file.
     */
    public String getContentDisposition() {
        return this.contentDisposition;
    }

    /**
     * Gets the content encoding value for the file.
     * 
     * @return A String which represents the content encoding, or null if content encoding has
     *         not been set on the file.
     */
    public String getContentEncoding() {
        return this.contentEncoding;
    }

    /**
     * Gets the content language value for the file.
     * 
     * @return A String which represents the content language, or null if content language
     *         has not been set on the file.
     */
    public String getContentLanguage() {
        return this.contentLanguage;
    }

    /**
     * Gets the content MD5 value for the file.
     * 
     * @return A String which represents the content MD5 value.
     */
    public String getContentMD5() {
        return this.contentMD5;
    }

    /**
     * Gets the content type value for the file.
     * 
     * @return A String which represents the content type, or null if the content type has not
     *         be set for the file.
     */
    public String getContentType() {
        return this.contentType;
    }
    
    /**
     * Gets the file's copy state.
     * 
     * @return A {@link CopyState} object which represents the copy state of the file.
     */
    public CopyState getCopyState() {
        return this.copyState;
    }
    
    /**
     * Gets the ETag value for the file.
     * 

* The ETag value is a unique identifier that is updated when a write operation is performed against the file. It * may be used to perform operations conditionally, providing concurrency control and improved efficiency. *

* The {@link AccessCondition#generateIfMatchCondition(String)} and * {@link AccessCondition#generateIfNoneMatchCondition(String)} methods take an ETag value and return an * {@link AccessCondition} object that may be specified on the request. * * @return A String which represents the ETag value. */ public String getEtag() { return this.etag; } /** * Gets the last modified time for the file. * * @return A {@link java.util.Date} object which represents the last modified time. */ public Date getLastModified() { return this.lastModified; } /** * Gets the size, in bytes, of the file. * * @return A long which represents the length of the file. */ public long getLength() { return this.length; } /** * Gets the file's server-side encryption status. * * @return A boolean which specifies the file's encryption status. */ public boolean isServerEncrypted() { return serverEncrypted; } /** * Sets the cache control value for the file. * * @param cacheControl * A String which specifies the cache control value to set. */ public void setCacheControl(final String cacheControl) { this.cacheControl = cacheControl; } /** * Sets the content disposition value for the file. * * @param contentDisposition * A String which specifies the content disposition value to set. */ public void setContentDisposition(final String contentDisposition) { this.contentDisposition = contentDisposition; } /** * Sets the content encoding value for the file. * * @param contentEncoding * A String which specifies the content encoding value to set. */ public void setContentEncoding(final String contentEncoding) { this.contentEncoding = contentEncoding; } /** * Sets the content language for the file. * * @param contentLanguage * A String which specifies the content language value to set. */ public void setContentLanguage(final String contentLanguage) { this.contentLanguage = contentLanguage; } /** * Sets the content MD5 value for the file. * * @param contentMD5 * A String which specifies the content MD5 value to set. */ public void setContentMD5(final String contentMD5) { this.contentMD5 = contentMD5; } /** * Sets the content type value for the file. * * @param contentType * A String which specifies the content type value to set. */ public void setContentType(final String contentType) { this.contentType = contentType; } /** * Sets the file's server-side encryption status. * * @param serverEncrypted * A boolean which specifies the encryption status to set. */ protected void setServerEncrypted(boolean serverEncrypted) { this.serverEncrypted = serverEncrypted; } /** * Sets the copy state value for the file. * * @param copyState * A {@link CopyState} object which specifies the copy state value to set. */ protected void setCopyState(final CopyState copyState) { this.copyState = copyState; } /** * Sets the ETag value for the file. * * @param etag * A String which specifies the ETag value to set. */ protected void setEtag(final String etag) { this.etag = etag; } /** * Sets the last modified time for the file. * * @param lastModified * A {@link java.util.Date} object which specifies the last modified time to set. */ protected void setLastModified(final Date lastModified) { this.lastModified = lastModified; } /** * Sets the content length, in bytes, for the file. * * @param length * A long which specifies the length to set. */ protected void setLength(final long length) { this.length = length; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy