⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 propertiesattribute.java

📁 很棒的web服务器源代码
💻 JAVA
字号:
// PropertiesAttribute.java// $Id: PropertiesAttribute.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;import java.io.IOException;import java.util.Enumeration;import org.w3c.util.ArrayDictionary;/** * The generic description of an PropertiesAttribute. * A PropertiesAttribute instance holds a String to String mapping, it * should be used only with care, since people may act on a reference to * it. */public class PropertiesAttribute extends Attribute {    /**     * Get the pickled length of that string.     */    private int getPickleLength(String str) {	int    strlen = str.length() ;	int    utflen = 0 ;		for (int i = 0 ; i < strlen ; i++) {	    int c = str.charAt(i);	    if ((c >= 0x0001) && (c <= 0x007F)) {		utflen++;	    } else if (c > 0x07FF) {		utflen += 3;	    } else {		utflen += 2;	    }	}	return utflen + 2 ;    }    /**     * Is the given object a valid PropertiesAttribute value ?     * @param obj The object to test.     * @return A boolean <strong>true</strong> if value is valid.     */    public boolean checkValue(Object obj) {	return (obj == null) || (obj instanceof ArrayDictionary);    }    /**     * 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.     */    public final int getPickleLength(Object value) {	ArrayDictionary a = (ArrayDictionary) value;	Enumeration     e = a.keys();	int             s = 4;	while ( e.hasMoreElements() ) {	    String key = (String) e.nextElement();	    s += getPickleLength(key);	    s += getPickleLength((String) a.get(key));	}	return s;    }    /**     * Pickle a property list to the given output stream.     * @param out The output stream to pickle to.     * @param obj The object to pickle.     * @exception IOException If some IO error occured.     */    public void pickle(DataOutputStream out, Object o) 	throws IOException    {	ArrayDictionary a = (ArrayDictionary) o;	Enumeration     e = a.keys();	int             s = a.size();	out.writeInt(s);	while (--s >= 0) {	    String key = (String) e.nextElement();	    out.writeUTF(key);	    out.writeUTF((String) a.get(key));	}    }    /**     * Unpickle an string from the given input stream.     * @param in The input stream to unpickle from.     * @return An instance of String.     * @exception IOException If some IO error occured.     */    public Object unpickle (DataInputStream in) 	throws IOException    {	int             s = in.readInt();	ArrayDictionary a = new ArrayDictionary(s, 5);	while (--s >= 0) {	    String k = in.readUTF();	    String v = in.readUTF();	    a.put(k, v);	}	return a;    }    /**     * Create a description for a generic property list attribute.     * @param name The attribute name.     * @param def The default value for these attributes.     * @param flags The associated flags.     */    public PropertiesAttribute(String name, String def, Integer flags) {	super(name, def, flags) ;	this.type = "java.lang.String";    }}

⌨️ 快捷键说明

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