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

org.wisdom.api.asset.DefaultAsset Maven / Gradle / Ivy

The newest version!
/*
 * #%L
 * Wisdom-Framework
 * %%
 * Copyright (C) 2013 - 2014 Wisdom Framework
 * %%
 * 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.
 * #L%
 */
package org.wisdom.api.asset;

/**
 * A default implementation of asset.
 */
public class DefaultAsset implements Asset {

    private final String path;

    private final T content;

    private final String source;

    private final String etag;

    private final long lastModified;

    /**
     * Creates a new default asset.
     *
     * @param path    the path
     * @param content the content
     * @param source  the source
     */
    public DefaultAsset(String path, T content, String source) {
        this(path, content, source, -1, null);
    }

    /**
     * Creates a new default asset.
     *
     * @param path         the path
     * @param content      the content
     * @param source       the source
     * @param lastModified the last modification date
     * @param etag         the etag if computed (may be {@code null})
     */
    public DefaultAsset(String path, T content, String source, long lastModified, String etag) {
        this.path = path;
        this.content = content;
        this.source = source;
        this.etag = etag;
        this.lastModified = lastModified;
    }

    /**
     * Gets the path of the asset. Emitting a request on this path allows to retrieve the asset.
     *
     * @return the url
     */
    public String getPath() {
        return path;
    }

    /**
     * Gets the asset backend (file, url...).
     *
     * @return the content
     */
    public T getContent() {
        return content;
    }

    /**
     * Gets the asset's source.
     *
     * @return an identifier of the source
     */
    public String getSource() {
        return source;
    }

    /**
     * Gets the ETAG of the asset if computed.
     *
     * @return the ETAG, {@literal null} if not computed.
     */
    public String getEtag() {
        return etag;
    }

    /**
     * Gets the last modification date.
     *
     * @return the last modification date of the asset
     */
    public long getLastModified() {
        return lastModified;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy