objectattribute.java

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

JAVA
110
字号
// ObjectAttribute.java// $Id: ObjectAttribute.java,v 1.4 2000/08/16 21:37:56 ylafon Exp $// (c) COPYRIGHT MIT and INRIA, 1996.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.tools.resources.upgrade;import java.io.DataInputStream;import java.io.DataOutputStream;/** * A generic Object attribute. * This attribute is usefull for attributes that are: * <ul> * <li>Have Object values. * <li>Need not be saved (have the DONTSAVE bit set). * </ul> */public class ObjectAttribute extends Attribute {    /**     * The class for values of this attribute.     */    protected Class cls = null ;    /**     * Check that a value is allowed for this attribute.     * @param value The value to check.     * @return A boolean <strong>true</strong> if value is allowed.     */    public boolean checkValue(Object value) {	return true;    }    /**     * Get the number of bytes required to save that attribute value.     * @param The value about to be pickled.     * @return The number of bytes needed to pickle that value.     * @exception RuntimeException Always throw since ObjectAttribute      * can't be pickled.     */    public final int getPickleLength(Object value) {	throw new RuntimeException("Can't pickle ObjectAttribute");    }    /**     * The ObjectAttribute values can't be pickled.     */    public void pickle(DataOutputStream out, Object obj) {	throw new RuntimeException ("Can't pickle ObjectAttribute.");    }    /**     * The ObjectAttribute values can't be unpickled.     */    public Object unpickle(DataInputStream in) {	throw new RuntimeException("Can't unpickle ObjectAttribute.");    }    /**     * Create a new ObjectAttribute instance.     * @param name The name of the attribute.     * @param cls The class for this attribute values.     * @param def The default value for this attribute.     * @param flags The attribute flags.     */    public ObjectAttribute(String name, Class cls, Object def,			   Integer  flags) {	super(name, def, flags) ;	// Check consistency	if ( ! checkFlag(DONTSAVE) ) {	    String error = "ObjectAttribute can't pickle themselves." ;	    throw new RuntimeException (error) ;	}	this.cls = cls ;    }    /**     * Create a new ObjectAttribute instance.     * @param name The name of the attribute.     * @param cname The name class for this attribute values.     * @param def The default value for this attribute.     * @param flags The attribute flags.     * @exception RuntimeException If we couldn't resolve the class name.     */    public ObjectAttribute(String name, String cname, Object def,			   Integer flags) {	super(name, def, flags) ;	// Check consistency:	if ( ! checkFlag(DONTSAVE) ) {	    String error = "ObjectAttribute can't pickle themselves." ;	    throw new RuntimeException (error) ;	}	// Resolve the class:	try {	    this.cls = Class.forName(cname) ;	} catch (Exception ex) {	    throw new RuntimeException("unable to resolve class "+cname) ;	}	this.type = "java.lang.Object";    }}

⌨️ 快捷键说明

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