org.zkoss.web.util.resource.ResourceInfo Maven / Gradle / Ivy
/* 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;
}
}