OSDN Git Service

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