1 package org.apache.harmony.tests.java.io; 2 3 /** 4 * Test classes for {@link ComputeSerialVersionUIDTest}. Used to ensure 5 * that serial version UIDs are generated correctly for various combinations 6 * of interfaces, fields, constructors and methods. 7 */ 8 public class SerializationTestClass implements java.io.Serializable { 9 10 // Test class names 11 public static class TestClassName1 implements java.io.Serializable { 12 } 13 14 public static class TestClassName2T_T$T implements java.io.Serializable { 15 } 16 17 // Test Modifiers 18 public static class TestClassModifierPublic implements java.io.Serializable { 19 } 20 21 interface TestClassModifierInterfaceHelper extends java.io.Serializable { 22 } 23 24 public static class TestClassModifierInterface implements 25 TestClassModifierInterfaceHelper { 26 } 27 28 final static class TestClassModifierFinal implements java.io.Serializable { 29 } 30 31 abstract static class TestClassModifierAbstractHelper implements 32 java.io.Serializable { 33 } 34 35 public static class TestClassModifierAbstract extends 36 TestClassModifierAbstractHelper { 37 } 38 39 40 // TODO Arrays always are abstract 41 42 // TODO Non public interface has no abstract modifier 43 44 45 // Test interfaces 46 interface A extends java.io.Serializable { 47 } 48 49 interface B extends java.io.Serializable { 50 } 51 52 interface C extends A { 53 } 54 55 public static class TestInterfaces implements java.io.Serializable { 56 } 57 58 public static class TestInterfacesA implements A { 59 } 60 61 public static class TestInterfacesAB implements A, B { 62 } 63 64 public static class TestInterfacesBA implements B, A { 65 } 66 67 public static class TestInterfacesC implements C { 68 } 69 70 public static class TestInterfacesCA implements C, A { 71 } 72 73 public static class TestInterfacesABC implements A, B, C { 74 } 75 76 public static class TestInterfacesACB implements A, C, B { 77 } 78 79 public static class TestInterfacesBAC implements B, A, C { 80 } 81 82 public static class TestInterfacesBCA implements B, C, A { 83 } 84 85 public static class TestInterfacesCAB implements C, A, B { 86 } 87 88 public static class TestInterfacesCBA implements C, B, A { 89 } 90 91 /** 92 * Modifier.PUBLIC | Modifier.PRIVATE | Modifier.PROTECTED | Modifier.STATIC | 93 * Modifier.FINAL | Modifier.VOLATILE | Modifier.TRANSIENT 94 */ 95 // Test Fields 96 public static class TestFieldsNone implements java.io.Serializable { 97 } 98 99 public static class TestFieldsOnePublic implements java.io.Serializable { 100 public int one; 101 } 102 103 public static class TestFieldsTwoPublic implements java.io.Serializable { 104 public int one; 105 public int two; 106 } 107 108 @SuppressWarnings("unused") 109 public static class TestFieldsOnePrivate implements java.io.Serializable { 110 private int one; 111 } 112 113 @SuppressWarnings("unused") 114 public static class TestFieldsTwoPrivate implements java.io.Serializable { 115 private int one; 116 private int two; 117 } 118 119 public static class TestFieldsOneProtected implements java.io.Serializable { 120 protected int one; 121 } 122 123 public static class TestFieldsTwoProtected implements java.io.Serializable { 124 protected int one; 125 protected int two; 126 } 127 128 public static class TestFieldsOneStatic implements java.io.Serializable { 129 static int one; 130 } 131 132 public static class TestFieldsTwoStatic implements java.io.Serializable { 133 static int one; 134 static int two; 135 } 136 137 public static class TestFieldsOneFinal implements java.io.Serializable { 138 final int one = 0; 139 } 140 141 public static class TestFieldsTwoFinal implements java.io.Serializable { 142 final int one = 0; 143 final int two = 0; 144 } 145 146 public static class TestFieldsOneVolatile implements java.io.Serializable { 147 volatile int one; 148 } 149 150 public static class TestFieldsTwoVolatile implements java.io.Serializable { 151 volatile int one; 152 volatile int two; 153 } 154 155 public static class TestFieldsOneTransient implements java.io.Serializable { 156 transient int one; 157 } 158 159 public static class TestFieldsTwoTransient implements java.io.Serializable { 160 transient int one; 161 transient int two; 162 } 163 164 public static class TestFieldSignatures implements java.io.Serializable { 165 Object l; 166 int i; 167 short s; 168 long j; 169 boolean z; 170 char c; 171 double d; 172 float f; 173 byte b; 174 } 175 176 177 // Test Constructors 178 public static class TestConstructorNone implements java.io.Serializable { 179 } 180 181 public static class TestConstructorOne implements java.io.Serializable { 182 public TestConstructorOne() { 183 } 184 } 185 186 public static class TestConstructorTwo implements java.io.Serializable { 187 public TestConstructorTwo(byte b) { 188 } 189 190 public TestConstructorTwo(char c) { 191 } 192 } 193 194 public static class TestConstructorTwoReverse implements java.io.Serializable { 195 public TestConstructorTwoReverse(char c) { 196 } 197 198 public TestConstructorTwoReverse(byte b) { 199 } 200 } 201 202 203 // Test Constructor Modifiers 204 public static class TestConstructorPublic implements java.io.Serializable { 205 public TestConstructorPublic() { 206 } 207 } 208 209 public static class TestConstructorPrivate implements java.io.Serializable { 210 private TestConstructorPrivate() { 211 } 212 213 public TestConstructorPrivate(int i) { 214 this(); 215 } 216 } 217 218 public static class TestConstructorProtected implements java.io.Serializable { 219 protected TestConstructorProtected() { 220 } 221 } 222 // TODO constructor modifier strict? 223 // TODO constructor modifier static? 224 // TODO constructor modifier final? 225 // TODO constructor modifier synchronized? 226 // TODO constructor modifier native? 227 // TODO constructor modifier abstract? 228 229 230 // Test constructor signature 231 public static class TestConstructorSignature implements java.io.Serializable { 232 public TestConstructorSignature(boolean z, byte b, char c, short s, 233 int i, float f, double j, Object l) { 234 } 235 } 236 237 238 // Test Method Modifiers 239 public static class TestMethodPublic implements java.io.Serializable { 240 public void method() { 241 } 242 } 243 244 @SuppressWarnings("unused") 245 public static class TestMethodPrivate implements java.io.Serializable { 246 private void method() { 247 } 248 } 249 250 public static class TestMethodProtected implements java.io.Serializable { 251 protected void method() { 252 } 253 } 254 255 public static class TestMethodStrict implements java.io.Serializable { 256 strictfp void method() { 257 } 258 } 259 260 public static class TestMethodStatic implements java.io.Serializable { 261 static void method() { 262 } 263 } 264 265 public static class TestMethodFinal implements java.io.Serializable { 266 final void method() { 267 } 268 } 269 270 public static class TestMethodSynchronized implements java.io.Serializable { 271 synchronized void method() { 272 } 273 } 274 275 public static class TestMethodNative implements java.io.Serializable { 276 native void method(); 277 } 278 279 public static abstract class TestMethodAbstractHelper implements 280 java.io.Serializable { 281 abstract void method(); 282 } 283 284 public static class TestMethodAbstract extends TestMethodAbstractHelper implements 285 java.io.Serializable { 286 @Override 287 void method() { 288 } 289 } 290 291 292 // Test method signature 293 public static class TestMethodSignature implements java.io.Serializable { 294 public void method(boolean z, byte b, char c, short s, int i, float f, 295 double j, Object l) { 296 } 297 } 298 299 300 // Test method return signature 301 public static class TestMethodReturnSignature implements java.io.Serializable { 302 public void methodV() { 303 } 304 305 public boolean methodZ() { 306 return false; 307 } 308 309 public byte methodB() { 310 return 0; 311 } 312 313 public char methodC() { 314 return '0'; 315 } 316 317 public short methodS() { 318 return 0; 319 } 320 321 public int methodI() { 322 return 0; 323 } 324 325 public float methodF() { 326 return 0F; 327 } 328 329 public double methodD() { 330 return 0D; 331 } 332 333 public Object methodL() { 334 return null; 335 } 336 } 337 } 338