Home | History | Annotate | Download | only in io
      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