/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package tests.support; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; /** * Support class to test the methods of {@code ObjectInputStream.GetField} and * {@code ObjectOutputStream.PutField}. The difference with class * {@code Support_GetPutFields} is that it uses the deprecated method * {@code ObjectOutputStream.PutField.write(ObjectOutput)} to write the fields * to the output stream. */ public class Support_GetPutFieldsDeprecated implements Serializable { private static final long serialVersionUID = 1L; public ObjectInputStream.GetField getField; public ObjectOutputStream.PutField putField; public boolean booleanValue = false; public byte byteValue = 0; public char charValue = 0; public double doubleValue = 0.0; public float floatValue = 0.0f; public long longValue = 0; public int intValue = 0; public short shortValue = 0; public SimpleClass objectValue = null; class SimpleClass implements Serializable { private static final long serialVersionUID = 1L; private int a; private String b; public SimpleClass(int aValue, String bValue) { a = aValue; b = bValue; } public int getA() { return a; } public String getB() { return b; } public boolean equals(Object obj) { if (obj == null || obj.getClass() != this.getClass()) { return false; } SimpleClass other = (SimpleClass) obj; return (a == other.getA() && b.equals(other.getB())); } } public void initTestValues() { booleanValue = true; byteValue = (byte) 0xbe; charValue = 'A'; doubleValue = 1231.342; floatValue = 43.22f; longValue = 1560732321l; intValue = 33333; objectValue = new SimpleClass(2001, "A Space Odyssey"); shortValue = 3078; } public boolean equals(Object obj) { if (obj == null || obj.getClass() != this.getClass()) { return false; } Support_GetPutFields other = (Support_GetPutFields) obj; return (booleanValue == other.booleanValue && byteValue == other.byteValue && charValue == other.charValue && doubleValue == other.doubleValue && floatValue == other.floatValue && longValue == other.longValue && intValue == other.intValue && objectValue.equals(other.objectValue) && shortValue == other.shortValue ); } private void readObject(ObjectInputStream ois) throws Exception { booleanValue = getField.get("booleanValue", false); byteValue = getField.get("byteValue", (byte) 0); charValue = getField.get("charValue", (char) 0); doubleValue = getField.get("doubleValue", 0.0); floatValue = getField.get("floatValue", 0.0f); longValue = getField.get("longValue", (long) 0); intValue = getField.get("intValue", 0); objectValue = (Support_GetPutFieldsDeprecated.SimpleClass) getField.get("objectValue", (Object) null); shortValue = getField.get("shortValue", (short) 0); } private void writeObject(ObjectOutputStream oos) throws IOException { putField = oos.putFields(); putField.put("booleanValue", booleanValue); putField.put("byteValue", byteValue); putField.put("charValue", charValue); putField.put("doubleValue", doubleValue); putField.put("floatValue", floatValue); putField.put("longValue", longValue); putField.put("intValue", intValue); putField.put("objectValue", objectValue); putField.put("shortValue", shortValue); putField.write(oos); } }