📄 outputstreamhook.java
字号:
/* * @(#)OutputStreamHook.java 1.11 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. *//* * Licensed Materials - Property of IBM * RMI-IIOP v1.0 * Copyright IBM Corp. 1998 1999 All Rights Reserved * * US Government Users Restricted Rights - Use, duplication or * disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */package com.sun.corba.se.internal.io;import java.io.IOException;import java.io.OutputStream;import java.io.ObjectOutputStream;import java.io.ObjectOutput;import java.util.Hashtable;public abstract class OutputStreamHook extends ObjectOutputStream{ private HookPutFields putFields = null; /** * Since ObjectOutputStream.PutField methods specify no exceptions, * we are not checking for null parameters on put methods. */ private class HookPutFields extends ObjectOutputStream.PutField { private Hashtable fields = new Hashtable(); /** * Put the value of the named boolean field into the persistent field. */ public void put(String name, boolean value){ fields.put(name, new Boolean(value)); } /** * Put the value of the named char field into the persistent fields. */ public void put(String name, char value){ fields.put(name, new Character(value)); } /** * Put the value of the named byte field into the persistent fields. */ public void put(String name, byte value){ fields.put(name, new Byte(value)); } /** * Put the value of the named short field into the persistent fields. */ public void put(String name, short value){ fields.put(name, new Short(value)); } /** * Put the value of the named int field into the persistent fields. */ public void put(String name, int value){ fields.put(name, new Integer(value)); } /** * Put the value of the named long field into the persistent fields. */ public void put(String name, long value){ fields.put(name, new Long(value)); } /** * Put the value of the named float field into the persistent fields. * */ public void put(String name, float value){ fields.put(name, new Float(value)); } /** * Put the value of the named double field into the persistent field. */ public void put(String name, double value){ fields.put(name, new Double(value)); } /** * Put the value of the named Object field into the persistent field. */ public void put(String name, Object value){ fields.put(name, value); } /** * Write the data and fields to the specified ObjectOutput stream. */ public void write(ObjectOutput out) throws IOException { OutputStreamHook hook = (OutputStreamHook)out; ObjectStreamField[] osfields = hook.getFieldsNoCopy(); // Write the fields to the stream in the order // provided by the ObjectStreamClass. (They should // be sorted appropriately already.) for (int i = 0; i < osfields.length; i++) { Object value = fields.get(osfields[i].getName()); hook.writeField(osfields[i], value); } } } abstract void writeField(ObjectStreamField field, Object value) throws IOException; public OutputStreamHook() throws java.io.IOException { super(); } public void defaultWriteObject() throws IOException { defaultWriteObjectDelegate(); } public abstract void defaultWriteObjectDelegate(); public ObjectOutputStream.PutField putFields() throws IOException { putFields = new HookPutFields(); return putFields; } abstract ObjectStreamField[] getFieldsNoCopy(); public void writeFields() throws IOException { putFields.write(this); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -