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.Serializable; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ObjectInputStream; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ObjectOutputStream; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException; 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} to write fields to an output stream and 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * read them back from an input stream. 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class Support_GetPutFields implements Serializable { 31f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static final long serialVersionUID = 1L; 33f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ObjectInputStream.GetField getField; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ObjectOutputStream.PutField putField; 36f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean booleanValue = false; 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public byte byteValue = 0; 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public char charValue = 0; 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public double doubleValue = 0.0; 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public float floatValue = 0.0f; 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public long longValue = 0; 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int intValue = 0; 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public short shortValue = 0; 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public SimpleClass objectValue = null; 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class SimpleClass implements Serializable { 48f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static final long serialVersionUID = 1L; 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private int a; 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private String b; 52f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public SimpleClass(int aValue, String bValue) { 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project a = aValue; 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project b = bValue; 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 57f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int getA() { 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return a; 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 61f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String getB() { 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return b; 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 65f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean equals(Object obj) { 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (obj == null || obj.getClass() != this.getClass()) { 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 70f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SimpleClass other = (SimpleClass) obj; 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return (a == other.getA() && b.equals(other.getB())); 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 75f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void initTestValues() { 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project booleanValue = true; 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byteValue = (byte) 0xbe; 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project charValue = 'B'; 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doubleValue = 424242.42; 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project floatValue = 24.12f; 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project longValue = 6700654321l; 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project intValue = 77777; 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project objectValue = new SimpleClass(1965, "Hello Mars"); 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project shortValue = 1234; 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 87f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean equals(Object obj) { 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (obj == null || obj.getClass() != this.getClass()) { 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 92f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Support_GetPutFields other = (Support_GetPutFields) obj; 94f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes return (booleanValue == other.booleanValue && 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byteValue == other.byteValue && 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project charValue == other.charValue && 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doubleValue == other.doubleValue && 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project floatValue == other.floatValue && 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project longValue == other.longValue && 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project intValue == other.intValue && 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project objectValue.equals(other.objectValue) && 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project shortValue == other.shortValue 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ); 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 105f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private void readObject(ObjectInputStream ois) throws Exception { 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project getField = ois.readFields(); 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project booleanValue = getField.get("booleanValue", false); 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byteValue = getField.get("byteValue", (byte) 0); 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project charValue = getField.get("charValue", (char) 0); 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doubleValue = getField.get("doubleValue", 0.0); 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project floatValue = getField.get("floatValue", 0.0f); 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project longValue = getField.get("longValue", (long) 0); 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project intValue = getField.get("intValue", 0); 115f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes objectValue = (Support_GetPutFields.SimpleClass) 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project getField.get("objectValue", (Object) null); 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project shortValue = getField.get("shortValue", (short) 0); 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 119f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private void writeObject(ObjectOutputStream oos) throws IOException { 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField = oos.putFields(); 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("booleanValue", booleanValue); 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("byteValue", byteValue); 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("charValue", charValue); 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("doubleValue", doubleValue); 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("floatValue", floatValue); 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("longValue", longValue); 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("intValue", intValue); 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("objectValue", objectValue); 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project putField.put("shortValue", shortValue); 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project oos.writeFields(); 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 134