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

📄 serializationmanager.java

📁 High performance DB query
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            return SERIALUID_TIME;        }        if (theObject instanceof Timestamp) {            SerializeTimestamp.serialize(outputBuffer, (Timestamp) theObject);            return SERIALUID_TIMESTAMP;        }        if (theObject instanceof Vector) {            SerializeList.serialize(outputBuffer, (Vector) theObject);            return SERIALUID_VECTOR;        }        if (theObject instanceof ArrayList) {            SerializeList.serialize(outputBuffer, (ArrayList) theObject);            return SERIALUID_ARRAYLIST;        }        if (theObject instanceof Hashtable) {            SerializeMap.serialize(outputBuffer, (Hashtable) theObject);            return SERIALUID_HASHTABLE;        }        if (theObject instanceof HashMap) {            SerializeMap.serialize(outputBuffer, (HashMap) theObject);            return SERIALUID_HASHMAP;        }        if (theObject instanceof Byte[]) {            SerializeByteArray.serialize(outputBuffer, (Byte[]) theObject);            return SERIALUID_BYTEARRAY;        }        if (theObject instanceof BitID) {            ((BitID) theObject).serialize(outputBuffer);            return SERIALUID_BITID;        }        throw new RuntimeException(            "SerializationManager: Unable to Serialize class:"            + theObject.getClass().getName());    }    /**     * Method getSerialUID     * @return     */    public static long getSerialUID() {        StackTraceElement stack[] = new Exception().getStackTrace();        String parentClass = stack[1].getClassName();        return getSerialUID(parentClass);    }    /**     * Method getSerialUID     *     * @param classname     * @return     */    public static long getSerialUID(String classname) {        try {            Class theClass = Class.forName(classname);            ObjectStreamClass description = ObjectStreamClass.lookup(theClass);            if (description != null) {                return description.getSerialVersionUID();            } else {                return 0;            }        } catch (ClassNotFoundException exception) {            throw new RuntimeException(                "SerializationManager: Unable to calculate serialUID for:"                + classname);        }    }    /**     * Method registerClass     * @return     */    public static boolean registerClass() {        StackTraceElement stack[] = new Exception().getStackTrace();        String parentClass = stack[1].getClassName();        return registerClass(getSerialUID(parentClass), parentClass);    }    /**     * Method registerClass     *     * @param serialUID     * @return     */    public static boolean registerClass(long serialUID) {        StackTraceElement stack[] = new Exception().getStackTrace();        String parentClass = stack[1].getClassName();        return registerClass(serialUID, parentClass);    }    /**     * Method registerClass     *     * @param className     * @return     */    public static boolean registerClass(String className) {        return registerClass(getSerialUID(className), className);    }    /**     * Method registerClass     *     * @param serialUID     * @param className     * @return     */    public static boolean registerClass(long serialUID, String className) {        if (classes == null) {            classes = new Hashtable();            SerializableClasses.doRegistrations();        }        try {            if (Output.debuggingEnabled) {                logger.debug(new LogMessage(new Object[]{"Registering class:",                                                         className,                                                         " with serialUID:",                                                         String.valueOf(                                                             serialUID)}));            }            Class objectClass = Class.forName(className);            Class[] args = {Class.forName(                               "util.network.serialization.GenericByteBuffer")};            Constructor theConstructor = null;            theConstructor = objectClass.getConstructor(args);            classes.put(new Long(serialUID), theConstructor);            return true;        } catch (Exception exception) {            throw new RuntimeException("ClassManager: Unable to register class:"                                       + className + "(" + serialUID                                       + "), ERROR:"                                       + exception.getClass().getName() + ": "                                       + exception.getMessage());        }    }    /**     * Method deSerialize     *     * @param inputBuffer     * @return     */    public static Payload deSerialize(GenericByteBuffer inputBuffer) {        long serialUID = inputBuffer.getLong();        return deSerialize(inputBuffer, serialUID);    }    /**     * Method deSerialize     *     * @param inputBuffer     * @param serialUID     * @return     */    public static Payload deSerialize(GenericByteBuffer inputBuffer,                                      long serialUID) {        Payload theObject = null;        if (serialUID != 0L) {            Constructor theConstructor =                (Constructor) classes.get(new Long(serialUID));            Object[] args = {inputBuffer};            try {                theObject = (Payload) theConstructor.newInstance(args);            } catch (Exception exception) {                exception.printStackTrace();                String classname = (theConstructor == null)                                   ? "null"                                   : theConstructor.getDeclaringClass().getName();                throw new RuntimeException(                    "SerializationManager: Unable to deserialize class:"                    + serialUID + "(" + classname + "), ERROR:"                    + exception.getClass().getName() + ": "                    + exception.getMessage());            }        }        return theObject;    }    /**     * Method deSerializeExtended     *     * @param inputBuffer     * @return     */    public static Object deSerializeExtended(GenericByteBuffer inputBuffer) {        long serialUID = inputBuffer.getLong();        return deSerializeExtended(inputBuffer, serialUID);    }    /**     * Method deSerializeExtended     *     * @param inputBuffer     * @param serialUID     * @return     */    public static Object deSerializeExtended(GenericByteBuffer inputBuffer,                                             long serialUID) {        if ((serialUID < 0) || (serialUID > 255)) {            return deSerialize(inputBuffer, serialUID);        }        switch ((byte) serialUID) {        case 0:            return null;        case SERIALUID_BOOLEAN:            return SerializeBoolean.deSerialize(inputBuffer);        case SERIALUID_BYTE:            return SerializeByte.deSerialize(inputBuffer);        case SERIALUID_CHARACTER:            return SerializeCharacter.deSerialize(inputBuffer);        case SERIALUID_DOUBLE:            return SerializeDouble.deSerialize(inputBuffer);        case SERIALUID_FLOAT:            return SerializeFloat.deSerialize(inputBuffer);        case SERIALUID_INTEGER:            return SerializeInteger.deSerialize(inputBuffer);        case SERIALUID_LONG:            return SerializeLong.deSerialize(inputBuffer);        case SERIALUID_SHORT:            return SerializeShort.deSerialize(inputBuffer);        case SERIALUID_BIGDECIMAL:            return SerializeBigDecimal.deSerialize(inputBuffer);        case SERIALUID_BIGINTEGER:            return SerializeBigInteger.deSerialize(inputBuffer);        case SERIALUID_DATE:            return SerializeDate.deSerialize(inputBuffer);        case SERIALUID_INETADDRESS:            return SerializeInetAddress.deSerialize(inputBuffer, 4);        case SERIALUID_INETSOCKETADDRESS:            return SerializeInetSocketAddress.deSerialize(inputBuffer, 4);        case SERIALUID_STRING:            return SerializeString.deSerialize(inputBuffer);        case SERIALUID_TIME:            return SerializeTime.deSerialize(inputBuffer);        case SERIALUID_TIMESTAMP:            return SerializeTimestamp.deSerialize(inputBuffer);        case SERIALUID_VECTOR:            return SerializeList.deSerializeVector(inputBuffer);        case SERIALUID_ARRAYLIST:            return SerializeList.deSerializeArrayList(inputBuffer);        case SERIALUID_HASHTABLE:            return SerializeMap.deSerializeHashtable(inputBuffer);        case SERIALUID_HASHMAP:            return SerializeMap.deSerializeHashMap(inputBuffer);        case SERIALUID_BYTEARRAY:            return SerializeByteArray.deSerialize(inputBuffer);        case SERIALUID_BITID:            return new BitID(inputBuffer);        default:            throw new RuntimeException(                "SerializationManager: Unable to deserialize class:"                + serialUID);        }    }}

⌨️ 快捷键说明

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