zweb/src/main/java/org/zkoss/web/util/resource/ResourceInfo.java

Summary

Maintainability
A
0 mins
Test Coverage
/* ResourceInfo.java

    Purpose:
        
    Description:
        
    History:
        Tue Aug 30 18:27:16     2005, Created by tomyeh

Copyright (C) 2005 Potix Corporation. All Rights Reserved.

{{IS_RIGHT
    This program is distributed under LGPL Version 2.1 in the hope that
    it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.web.util.resource;

import java.io.File;
import java.net.URL;

/** Represents a resource.
 * Note: we would like to use path as the key while we need file for loading,
 * so we pack them as one object.
 * 
 * @author tomyeh
 */
/*package*/ class ResourceInfo {
    /*package*/ final String path;
    /*package*/ final File file;
    /*package*/ final URL url;
    /*package*/ final Object extra;

    /**
     * @param extra the extra parameter passed from {@link ResourceCaches#get}.
     */
    /*package*/ ResourceInfo(String path, File file, Object extra) {
        if (file == null)
            throw new IllegalArgumentException("null");
        this.path = path;
        this.file = file;
        this.url = null;
        this.extra = extra;
    }

    /*package*/ ResourceInfo(String path, URL url, Object extra) {
        if (url == null)
            throw new IllegalArgumentException("url");
        this.path = path;
        this.file = null;
        this.url = url;
        this.extra = extra;
    }

    //-- Object --//
    public boolean equals(Object o) {
        if (this == o)
            return true;
        return (o instanceof ResourceInfo) && path.equals(((ResourceInfo) o).path);
    }

    public int hashCode() {
        return this.path.hashCode();
    }

    public String toString() {
        return this.path;
    }
}