serializemap.java

来自「High performance DB query」· Java 代码 · 共 257 行

JAVA
257
字号
/* * @(#)$Id: SerializeMap.java,v 1.6 2004/07/02 23:59:23 huebsch Exp $ * * Copyright (c) 2001-2004 Regents of the University of California. * All rights reserved. * * This file is distributed under the terms in the attached BERKELEY-LICENSE * file. If you do not find these files, copies can be found by writing to: * Computer Science Division, Database Group, Universite of California, * 617 Soda Hall #1776, Berkeley, CA 94720-1776. Attention: Berkeley License * * Copyright (c) 2003-2004 Intel Corporation. All rights reserved. * * This file is distributed under the terms in the attached INTEL-LICENSE file. * If you do not find these files, copies can be found by writing to: * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, * Berkeley, CA, 94704.  Attention:  Intel License Inquiry. */package util.network.serialization;import java.util.HashMap;import java.util.Hashtable;import java.util.Iterator;import java.util.Map;import services.network.Payload;/** * Class SerializeMap * */public class SerializeMap {    public static final byte NULL_VALUE = -1;    /**     * Method serialize     *     * @param outputBuffer     * @param theObject     */    public static void serialize(GenericByteBuffer outputBuffer,                                 Map theObject) {        int mapSize = (theObject == null)                      ? NULL_VALUE                      : theObject.size();        outputBuffer.putInt(mapSize);        if (theObject == null) {            return;        }        Iterator entries = theObject.entrySet().iterator();        while (entries.hasNext()) {            Map.Entry theEntry = (Map.Entry) entries.next();            Object theKey = theEntry.getKey();            Object theValue = theEntry.getValue();            if (theKey instanceof Payload) {                SerializationManager.serialize(outputBuffer, (Payload) theKey);            } else {                SerializationManager.serializeExtended(outputBuffer, theKey);            }            if (theValue instanceof Payload) {                SerializationManager.serialize(outputBuffer,                                               (Payload) theValue);            } else {                SerializationManager.serializeExtended(outputBuffer, theValue);            }        }    }    /**     * Method serializeHomogenousKey     *     * @param outputBuffer     * @param theObject     */    public static void serializeHomogenousKey(GenericByteBuffer outputBuffer,                                              Map theObject) {        serialize(outputBuffer, theObject);    }    /**     * Method serializeHomogenousValue     *     * @param outputBuffer     * @param theObject     */    public static void serializeHomogenousValue(GenericByteBuffer outputBuffer,                                                Map theObject) {        serialize(outputBuffer, theObject);    }    /**     * Method serializeHomogenousKeyValue     *     * @param outputBuffer     * @param theObject     */    public static void serializeHomogenousKeyValue(            GenericByteBuffer outputBuffer, Map theObject) {        serialize(outputBuffer, theObject);    }    /**     * Method deSerialize     *     * @param inputBuffer     * @param theObject     * @return     */    public static Map deSerialize(GenericByteBuffer inputBuffer,                                  Map theObject) {        int mapSize = inputBuffer.getInt();        if (mapSize == NULL_VALUE) {            return null;        }        for (int i = 0; i < mapSize; i++) {            theObject.put(                SerializationManager.deSerializeExtended(inputBuffer),                SerializationManager.deSerializeExtended(inputBuffer));        }        return theObject;    }    /**     * Method deSerializeHomogenousKey     *     * @param inputBuffer     * @param theObject     * @return     */    public static Map deSerializeHomogenousKey(GenericByteBuffer inputBuffer,                                               Map theObject) {        return deSerialize(inputBuffer, theObject);    }    /**     * Method deSerializeHomogenousValue     *     * @param inputBuffer     * @param theObject     * @return     */    public static Map deSerializeHomogenousValue(GenericByteBuffer inputBuffer,                                                 Map theObject) {        return deSerialize(inputBuffer, theObject);    }    /**     * Method deSerializeHomogenousKeyValue     *     * @param inputBuffer     * @param theObject     * @return     */    public static Map deSerializeHomogenousKeyValue(            GenericByteBuffer inputBuffer, Map theObject) {        return deSerialize(inputBuffer, theObject);    }    /**     * Method deSerializeHashtable     *     * @param inputBuffer     * @return     */    public static Hashtable deSerializeHashtable(            GenericByteBuffer inputBuffer) {        return (Hashtable) deSerialize(inputBuffer, new Hashtable());    }    /**     * Method deSerializeHomogenousKeyHashtable     *     * @param inputBuffer     * @return     */    public static Hashtable deSerializeHomogenousKeyHashtable(            GenericByteBuffer inputBuffer) {        return (Hashtable) deSerialize(inputBuffer, new Hashtable());    }    /**     * Method deSerializeHomogenousValueHashtable     *     * @param inputBuffer     * @return     */    public static Hashtable deSerializeHomogenousValueHashtable(            GenericByteBuffer inputBuffer) {        return (Hashtable) deSerialize(inputBuffer, new Hashtable());    }    /**     * Method deSerializeHomogenousKeyValueHashtable     *     * @param inputBuffer     * @return     */    public static Hashtable deSerializeHomogenousKeyValueHashtable(            GenericByteBuffer inputBuffer) {        return (Hashtable) deSerialize(inputBuffer, new Hashtable());    }    /**     * Method deSerializeHashMap     *     * @param inputBuffer     * @return     */    public static HashMap deSerializeHashMap(GenericByteBuffer inputBuffer) {        return (HashMap) deSerialize(inputBuffer, new HashMap());    }    /**     * Method deSerializeHomogenousKeyHashMap     *     * @param inputBuffer     * @return     */    public static HashMap deSerializeHomogenousKeyHashMap(            GenericByteBuffer inputBuffer) {        return (HashMap) deSerialize(inputBuffer, new HashMap());    }    /**     * Method deSerializeHomogenousValueHashMap     *     * @param inputBuffer     * @return     */    public static HashMap deSerializeHomogenousValueHashMap(            GenericByteBuffer inputBuffer) {        return (HashMap) deSerialize(inputBuffer, new HashMap());    }    /**     * Method deSerializeHomogenousKeyValueHashMap     *     * @param inputBuffer     * @return     */    public static HashMap deSerializeHomogenousKeyValueHashMap(            GenericByteBuffer inputBuffer) {        return (HashMap) deSerialize(inputBuffer, new HashMap());    }}

⌨️ 快捷键说明

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