1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.support; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ObjectInputStream; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ObjectOutputStream; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.Serializable; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Support class to test the methods of {@code ObjectInputStream.GetField} and 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code ObjectOutputStream.PutField}. The difference with class 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code Support_GetPutFields} is that it uses the deprecated method 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code ObjectOutputStream.PutField.write(ObjectOutput)} to write the fields 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * to the output stream. 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class Support_GetPutFieldsDeprecated implements Serializable { 33f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static final long serialVersionUID = 1L; 35f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ObjectInputStream.GetField getField; 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ObjectOutputStream.PutField putField; 38f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean booleanValue = false; 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public byte byteValue = 0; 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public char charValue = 0; 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public double doubleValue = 0.0; 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public float floatValue = 0.0f; 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public long longValue = 0; 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int intValue = 0; 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public short shortValue = 0; 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public SimpleClass objectValue = null; 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class SimpleClass implements Serializable { 50f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static final long serialVersionUID = 1L; 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private int a; 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private String b; 54f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public SimpleClass(int aValue, String bValue) { 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project a = aValue; 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project b = bValue; 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 59f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int getA() { 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return a; 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 63f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String getB() { 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return b; 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 67f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean equals(Object obj) { 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (obj == null || obj.getClass() != this.getClass()) { 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 72f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SimpleClass other = (SimpleClass) obj; 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return (a == other.getA() && b.equals(other.getB())); 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 77f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void initTestValues() { 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project booleanValue = true; 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byteValue = (byte) 0xbe; 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project charValue = 'A'; 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doubleValue = 1231.342; 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project floatValue = 43.22f; 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project longValue = 1560732321l; 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project intValue = 33333; 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project objectValue = new SimpleClass(2001, "A Space Odyssey"); 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project shortValue = 3078; 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 89f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean equals(Object obj) { 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (obj == null || obj.getClass() != this.getClass()) { 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 94f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Support_GetPutFields other = (Support_GetPutFields) obj; 96f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes return (booleanValue == other.booleanValue && 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byteValue == other.byteValue && 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project charValue == other.charValue && 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doubleValue == other.doubleValue && 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project floatValue == other.floatValue && 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project longValue == other.longValue && 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project intValue == other.intValue && 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project objectValue.equals(other.objectValue) && 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project shortValue == other.shortValue 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ); 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 107f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private void readObject(ObjectInputStream ois) throws Exception { 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project booleanValue = getField.get("booleanValue", false); 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byteValue = getField.get("byteValue", (byte) 0); 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project charValue = getField.get("charValue", (char) 0); 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doubleValue = getField.get("doubleValue", 0.0); 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project floatValue = getField.get("floatValue", 0.0f); 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project longValue = getField.get("longValue", (long) 0); 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project intValue = getField.get("intValue", 0); 116f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes objectValue = (Support_GetPutFieldsDeprecated.SimpleClass) 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project getField.get("objectValue", (Object) null); 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project shortValue = getField.get("shortValue", (short) 0); 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 120f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private void writeObject(ObjectOutputStream oos) throws IOException { 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField = oos.putFields(); 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("booleanValue", booleanValue); 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("byteValue", byteValue); 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("charValue", charValue); 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("doubleValue", doubleValue); 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("floatValue", floatValue); 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("longValue", longValue); 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("intValue", intValue); 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("objectValue", objectValue); 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("shortValue", shortValue); 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.write(oos); 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 135