Author: aadamchik Date: Sun Jan 30 01:43:31 2011 New Revision: 1065163 URL: http://svn.apache.org/viewvc?rev=1065163&view=rev Log: parameterizing clone method
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/Util.java cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextSerializationTest.java Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/Util.java URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/Util.java?rev=1065163&r1=1065162&r2=1065163&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/Util.java (original) +++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/Util.java Sun Jan 30 01:43:31 2011 @@ -333,7 +333,7 @@ public class Util { /** * Creates Serializable object copy using serialization/deserialization. */ - public static Object cloneViaSerialization(Serializable obj) throws Exception { + public static <T extends Serializable> T cloneViaSerialization(T object) throws Exception { ByteArrayOutputStream bytes = new ByteArrayOutputStream() { @Override @@ -343,17 +343,17 @@ public class Util { }; ObjectOutputStream out = new ObjectOutputStream(bytes); - out.writeObject(obj); + out.writeObject(object); out.close(); ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes .toByteArray())); - Object objCopy = in.readObject(); + T copy = (T) in.readObject(); // no need to close the stream - we created it and now will be throwing away... // in.close(); - return objCopy; + return copy; } /** Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextSerializationTest.java URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextSerializationTest.java?rev=1065163&r1=1065162&r2=1065163&view=diff ============================================================================== --- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextSerializationTest.java (original) +++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextSerializationTest.java Sun Jan 30 01:43:31 2011 @@ -47,8 +47,7 @@ public class DataContextSerializationTes DataContext context = createDataContextWithSharedCache(true); - DataContext deserializedContext = (DataContext) Util - .cloneViaSerialization(context); + DataContext deserializedContext = Util.cloneViaSerialization(context); assertNotNull(deserializedContext.getEntityResolver()); assertSame(context.getEntityResolver(), deserializedContext.getEntityResolver()); @@ -58,8 +57,7 @@ public class DataContextSerializationTes DataContext context = createDataContextWithSharedCache(true); - DataContext deserializedContext = (DataContext) Util - .cloneViaSerialization(context); + DataContext deserializedContext = Util.cloneViaSerialization(context); assertNotNull(deserializedContext.getChannel()); assertSame(context.getChannel(), deserializedContext.getChannel()); @@ -69,8 +67,7 @@ public class DataContextSerializationTes DataContext context = createDataContextWithSharedCache(true); ObjectContext child = context.createChildContext(); - ObjectContext deserializedContext = (ObjectContext) Util - .cloneViaSerialization(child); + ObjectContext deserializedContext = Util.cloneViaSerialization(child); assertNotNull(deserializedContext.getChannel()); assertNotNull(deserializedContext.getEntityResolver()); @@ -82,8 +79,7 @@ public class DataContextSerializationTes DataContext context = createDataContextWithSharedCache(true); - DataContext deserializedContext = (DataContext) Util - .cloneViaSerialization(context); + DataContext deserializedContext = Util.cloneViaSerialization(context); assertNotSame(context, deserializedContext); assertNotSame(context.getObjectStore(), deserializedContext.getObjectStore()); @@ -115,8 +111,7 @@ public class DataContextSerializationTes .getObjectStore() .getDataRowCache()); - DataContext deserializedContext = (DataContext) Util - .cloneViaSerialization(context); + DataContext deserializedContext = Util.cloneViaSerialization(context); assertNotSame(context, deserializedContext); assertNotSame(context.getObjectStore(), deserializedContext.getObjectStore()); @@ -146,8 +141,7 @@ public class DataContextSerializationTes artist.setArtistName("artist1"); assertNotNull(artist.getObjectId()); - DataContext deserializedContext = (DataContext) Util - .cloneViaSerialization(context); + DataContext deserializedContext = Util.cloneViaSerialization(context); assertSame(context.getParentDataDomain(), deserializedContext .getParentDataDomain()); @@ -173,8 +167,7 @@ public class DataContextSerializationTes assertNotNull(artist.getObjectId()); context.commitChanges(); - DataContext deserializedContext = (DataContext) Util - .cloneViaSerialization(context); + DataContext deserializedContext = Util.cloneViaSerialization(context); assertSame(context.getParentDataDomain(), deserializedContext .getParentDataDomain()); @@ -209,8 +202,7 @@ public class DataContextSerializationTes context.commitChanges(); artist.setArtistName("artist2"); - DataContext deserializedContext = (DataContext) Util - .cloneViaSerialization(context); + DataContext deserializedContext = Util.cloneViaSerialization(context); assertSame(context.getParentDataDomain(), deserializedContext .getParentDataDomain());