putedentry.java

来自「很棒的web服务器源代码」· Java 代码 · 共 139 行

JAVA
139
字号
// PutedEntry.java// $Id: PutedEntry.java,v 1.7 2000/08/17 10:15:11 ylafon Exp $  // (c) COPYRIGHT MIT and INRIA, 1997.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.jigedit.filters;import java.io.File;import org.w3c.jigsaw.auth.AuthFilter;import org.w3c.tools.resources.Attribute;import org.w3c.tools.resources.AttributeHolder;import org.w3c.tools.resources.AttributeRegistry;import org.w3c.tools.resources.FileResource;import org.w3c.tools.resources.InvalidResourceException;import org.w3c.tools.resources.LongAttribute;import org.w3c.tools.resources.Resource;import org.w3c.tools.resources.ResourceReference;import org.w3c.tools.resources.StringAttribute;import org.w3c.tools.sorter.Comparable;import org.w3c.jigsaw.http.Request;import org.w3c.www.http.HttpMessage;import org.w3c.www.http.HttpRequestMessage;/** * We want free pickling, hence the super class. */public class PutedEntry extends AttributeHolder implements Comparable {    protected static int ATTR_AUTHOR   = -1;    protected static int ATTR_URL      = -1;    protected static int ATTR_FILENAME = -1;    protected static int ATTR_TIME     = -1;    static {	Class c = null;	Attribute a = null;	try {	    c = Class.forName("org.w3c.jigedit.filters.PutedEntry");	} catch (Exception ex) {	    ex.printStackTrace();	    System.exit(1);	}	// The author of change:	a = new StringAttribute("author"				, null				, Attribute.EDITABLE);	ATTR_AUTHOR = AttributeRegistry.registerAttribute(c, a);	// The mandatory url:	a = new StringAttribute("url"				, null				, Attribute.EDITABLE);	ATTR_URL = AttributeRegistry.registerAttribute(c, a);	// The optional absolute file name:	a = new StringAttribute("filename"				, null				, Attribute.EDITABLE);	ATTR_FILENAME = AttributeRegistry.registerAttribute(c, a);	// The time of modification:	a = new LongAttribute("time"			      , null			      , Attribute.EDITABLE);	ATTR_TIME = AttributeRegistry.registerAttribute(c, a);    }    final String getAuthor() {	return getString(ATTR_AUTHOR, null);    }    final String getURL() {	return getString(ATTR_URL, null);    }    final String getFilename() {	return getString(ATTR_FILENAME, null);    }    final long getTime() {	return getLong(ATTR_TIME, -1);    }    public String getStringValue() {	return Long.toString(getTime());    }    public boolean greaterThan(Comparable comp) {	return (getStringValue().compareTo(comp.getStringValue()) > 0);    }    protected String getKey() {	String key = getFilename();	if ( key == null )	    return getURL();	return key;    }    synchronized void update(Request request) {	String author = (String) request.getState(AuthFilter.STATE_AUTHUSER);	if (author == null) {	    author = "unknown";	}	long   time   = System.currentTimeMillis();	setValue(ATTR_AUTHOR, author);	setValue(ATTR_TIME, new Long(time));    }    static PutedEntry makeEntry(Request request) {	ResourceReference rr = request.getTargetResource();	Resource          r  = null;	if (rr != null) {	  try {	    r = rr.lock();	    // Build an entry:	    PutedEntry e = new PutedEntry();	    e.setValue(ATTR_URL, request.getURL().toExternalForm());	    if ( r instanceof FileResource )	      e.setValue(ATTR_FILENAME,			 ((FileResource) r).getFile().getAbsolutePath());	    // Update other infos:	    e.update(request);	    return e;	  } catch (InvalidResourceException ex) {	    return null;	  } finally {	    rr.unlock();	  }	}	return null;    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?