/////////////////////////////////////////////////////////////////////////////// // Copyright (c) 2002, Eric D. Friedman All Rights Reserved. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. /////////////////////////////////////////////////////////////////////////////// package gnu.trove; import java.io.IOException; import java.io.ObjectOutput; /** * Implementation of the variously typed procedure interfaces that supports * writing the arguments to the procedure out on an ObjectOutputStream. In the * case of two-argument procedures, the arguments are written out in the order * received. * * <p> * Any IOException is trapped here so that it can be rethrown in a writeObject * method. * </p> * * Created: Sun Jul 7 00:14:18 2002 * * @author Eric D. Friedman * @version $Id: SerializationProcedure.java,v 1.5 2006/11/10 23:27:54 robeden * Exp $ */ class SerializationProcedure implements TIntIntProcedure, TIntLongProcedure, TIntByteProcedure, TIntObjectProcedure, TIntProcedure, TLongIntProcedure, TLongLongProcedure, TLongByteProcedure, TLongObjectProcedure, TLongProcedure, TObjectIntProcedure, TObjectLongProcedure, TObjectByteProcedure, TObjectObjectProcedure, TObjectProcedure { private final ObjectOutput stream; IOException exception; SerializationProcedure(ObjectOutput stream) { this.stream = stream; } public boolean execute(byte val) { try { stream.writeByte(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(short val) { try { stream.writeShort(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(int val) { try { stream.writeInt(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(double val) { try { stream.writeDouble(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(long val) { try { stream.writeLong(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(float val) { try { stream.writeFloat(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(Object val) { try { stream.writeObject(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(Object key, Object val) { try { stream.writeObject(key); stream.writeObject(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(Object key, byte val) { try { stream.writeObject(key); stream.writeByte(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(Object key, short val) { try { stream.writeObject(key); stream.writeShort(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(Object key, int val) { try { stream.writeObject(key); stream.writeInt(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(Object key, long val) { try { stream.writeObject(key); stream.writeLong(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(Object key, double val) { try { stream.writeObject(key); stream.writeDouble(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(Object key, float val) { try { stream.writeObject(key); stream.writeFloat(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(int key, byte val) { try { stream.writeInt(key); stream.writeByte(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(int key, short val) { try { stream.writeInt(key); stream.writeShort(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(int key, Object val) { try { stream.writeInt(key); stream.writeObject(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(int key, int val) { try { stream.writeInt(key); stream.writeInt(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(int key, long val) { try { stream.writeInt(key); stream.writeLong(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(int key, double val) { try { stream.writeInt(key); stream.writeDouble(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(int key, float val) { try { stream.writeInt(key); stream.writeFloat(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(long key, Object val) { try { stream.writeLong(key); stream.writeObject(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(long key, byte val) { try { stream.writeLong(key); stream.writeByte(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(long key, short val) { try { stream.writeLong(key); stream.writeShort(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(long key, int val) { try { stream.writeLong(key); stream.writeInt(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(long key, long val) { try { stream.writeLong(key); stream.writeLong(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(long key, double val) { try { stream.writeLong(key); stream.writeDouble(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(long key, float val) { try { stream.writeLong(key); stream.writeFloat(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(double key, Object val) { try { stream.writeDouble(key); stream.writeObject(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(double key, byte val) { try { stream.writeDouble(key); stream.writeByte(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(double key, short val) { try { stream.writeDouble(key); stream.writeShort(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(double key, int val) { try { stream.writeDouble(key); stream.writeInt(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(double key, long val) { try { stream.writeDouble(key); stream.writeLong(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(double key, double val) { try { stream.writeDouble(key); stream.writeDouble(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(double key, float val) { try { stream.writeDouble(key); stream.writeFloat(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(float key, Object val) { try { stream.writeFloat(key); stream.writeObject(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(float key, byte val) { try { stream.writeFloat(key); stream.writeByte(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(float key, short val) { try { stream.writeFloat(key); stream.writeShort(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(float key, int val) { try { stream.writeFloat(key); stream.writeInt(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(float key, long val) { try { stream.writeFloat(key); stream.writeLong(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(float key, double val) { try { stream.writeFloat(key); stream.writeDouble(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(float key, float val) { try { stream.writeFloat(key); stream.writeFloat(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(byte key, Object val) { try { stream.writeByte(key); stream.writeObject(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(byte key, byte val) { try { stream.writeByte(key); stream.writeByte(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(byte key, short val) { try { stream.writeByte(key); stream.writeShort(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(byte key, int val) { try { stream.writeByte(key); stream.writeInt(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(byte key, long val) { try { stream.writeByte(key); stream.writeLong(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(byte key, double val) { try { stream.writeByte(key); stream.writeDouble(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(byte key, float val) { try { stream.writeByte(key); stream.writeFloat(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(short key, Object val) { try { stream.writeShort(key); stream.writeObject(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(short key, byte val) { try { stream.writeShort(key); stream.writeByte(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(short key, short val) { try { stream.writeShort(key); stream.writeShort(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(short key, int val) { try { stream.writeShort(key); stream.writeInt(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(short key, long val) { try { stream.writeShort(key); stream.writeLong(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(short key, double val) { try { stream.writeShort(key); stream.writeDouble(val); } catch (IOException e) { this.exception = e; return false; } return true; } public boolean execute(short key, float val) { try { stream.writeShort(key); stream.writeFloat(val); } catch (IOException e) { this.exception = e; return false; } return true; } }// SerializationProcedure