You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ma...@apache.org on 2003/07/29 18:51:58 UTC
cvs commit: db-ojb/src/java/org/apache/ojb/otm/copy MetadataObjectCopyStrategy.java ReflectiveObjectCopyStrategy.java
mattbaird 2003/07/29 09:51:57
Modified: src/java/org/apache/ojb/otm/copy
MetadataObjectCopyStrategy.java
ReflectiveObjectCopyStrategy.java
Added: src/java/org/apache/ojb/otm/util IdentityMapFactory.java
Log:
codeswitcher doesn't really work worth beans, used a different way to get around it.
Revision Changes Path
1.1 db-ojb/src/java/org/apache/ojb/otm/util/IdentityMapFactory.java
Index: IdentityMapFactory.java
===================================================================
package org.apache.ojb.otm.util;
import java.util.Map;
/**
* Created by IntelliJ IDEA.
* User: matthew.baird
* Date: Jul 29, 2003
* Time: 9:16:27 AM
* To change this template use Options | File Templates.
*/
public final class IdentityMapFactory
{
private static boolean HAS_JDK_IDENTITY_MAP = true;
private static final String CLASS_NAME = "java.util.IdentityHashMap";
private static Class JDK_IDENTITY_MAP;
static
{
try
{
JDK_IDENTITY_MAP = Thread.currentThread().getContextClassLoader().loadClass(CLASS_NAME);
}
catch (ClassNotFoundException e)
{
HAS_JDK_IDENTITY_MAP = false;
}
}
private IdentityMapFactory() {}
public static Map getIdentityMap()
{
Map retval = null;
if (HAS_JDK_IDENTITY_MAP)
{
try
{
retval = (Map) JDK_IDENTITY_MAP.newInstance();
}
catch (InstantiationException e)
{
HAS_JDK_IDENTITY_MAP = false;
}
catch (IllegalAccessException e)
{
HAS_JDK_IDENTITY_MAP = false;
}
}
if (!HAS_JDK_IDENTITY_MAP)
{
retval = new org.apache.ojb.otm.util.IdentityHashMap();
}
return retval;
}
}
1.9 +3 -4 db-ojb/src/java/org/apache/ojb/otm/copy/MetadataObjectCopyStrategy.java
Index: MetadataObjectCopyStrategy.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/otm/copy/MetadataObjectCopyStrategy.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- MetadataObjectCopyStrategy.java 25 Jul 2003 00:22:00 -0000 1.8
+++ MetadataObjectCopyStrategy.java 29 Jul 2003 16:51:57 -0000 1.9
@@ -59,18 +59,17 @@
import org.apache.ojb.broker.accesslayer.CollectionProxy;
import org.apache.ojb.broker.PersistenceBroker;
import org.apache.ojb.broker.util.ConstructorHelper;
+import org.apache.ojb.otm.util.IdentityMapFactory;
import java.lang.reflect.Constructor;
import java.util.Map;
import java.util.Collection;
import java.util.Iterator;
-//#ifdef JDK14
-import java.util.IdentityHashMap;
+//#ifdef JDK13
import java.lang.reflect.Proxy;
//#else
/*
-import org.apache.ojb.otm.util.IdentityHashMap;
import com.develop.java.lang.reflect.Proxy;
*/
//#endif
@@ -97,7 +96,7 @@
*/
public Object copy(final Object obj, final PersistenceBroker broker)
{
- return clone(obj, new IdentityHashMap(), broker);
+ return clone(obj, IdentityMapFactory.getIdentityMap(), broker);
}
private static Object clone(final Object toCopy, final Map objMap, final PersistenceBroker broker)
1.9 +2 -8 db-ojb/src/java/org/apache/ojb/otm/copy/ReflectiveObjectCopyStrategy.java
Index: ReflectiveObjectCopyStrategy.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/otm/copy/ReflectiveObjectCopyStrategy.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ReflectiveObjectCopyStrategy.java 11 Jul 2003 17:21:42 -0000 1.8
+++ ReflectiveObjectCopyStrategy.java 29 Jul 2003 16:51:57 -0000 1.9
@@ -55,6 +55,7 @@
*/
import org.apache.ojb.broker.PersistenceBroker;
+import org.apache.ojb.otm.util.IdentityMapFactory;
import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
@@ -64,13 +65,6 @@
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-//#ifdef JDK14
-import java.util.IdentityHashMap;
-//#else
-/*
-import org.apache.ojb.otm.util.IdentityHashMap;
-*/
-//#endif
/**
* User: matthew.baird
@@ -105,7 +99,7 @@
*/
public final Object copy(final Object toCopy, final PersistenceBroker broker)
{
- return clone(toCopy, new IdentityHashMap(), new HashMap());
+ return clone(toCopy, IdentityMapFactory.getIdentityMap(), new HashMap());
}
/*
* class used to cache class metadata info
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org