[jbosscache-commits] JBoss Cache SVN: r5038 - core/trunk/src/main/java/org/jboss/cache/marshall.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Mon Jan 7 12:04:24 EST 2008


Author: manik.surtani at jboss.com
Date: 2008-01-07 12:04:24 -0500 (Mon, 07 Jan 2008)
New Revision: 5038

Modified:
   core/trunk/src/main/java/org/jboss/cache/marshall/CacheMarshaller200.java
Log:
reverting back to this for now

Modified: core/trunk/src/main/java/org/jboss/cache/marshall/CacheMarshaller200.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/marshall/CacheMarshaller200.java	2008-01-07 15:37:50 UTC (rev 5037)
+++ core/trunk/src/main/java/org/jboss/cache/marshall/CacheMarshaller200.java	2008-01-07 17:04:24 UTC (rev 5038)
@@ -117,7 +117,7 @@
       {
          // not region based!
          if (trace) log.trace("Marshalling object " + o);
-         ReferencesMap refMap = new ReferencesMap();
+         Map<Object, Integer> refMap = new HashMap<Object, Integer>();
          marshallObject(o, out, refMap);
       }
    }
@@ -140,7 +140,7 @@
    public void objectToObjectStream(Object o, ObjectOutputStream out, Fqn region) throws Exception
    {
       if (trace) log.trace("Marshalling object " + o);
-      ReferencesMap refMap = new ReferencesMap();
+      Map<Object, Integer> refMap = new HashMap<Object, Integer>();
       if (useRegionBasedMarshalling) // got to check again in case this meth is called directly
       {
          log.trace("Writing region " + region + " to stream");
@@ -257,18 +257,16 @@
    }
    // --------- Marshalling methods
 
-   private void marshallObject(Object o, ObjectOutputStream out, ReferencesMap refMap) throws Exception
+   private void marshallObject(Object o, ObjectOutputStream out, Map<Object, Integer> refMap) throws Exception
    {
-      int reference;
-
       if (o == null)
       {
          out.writeByte(MAGICNUMBER_NULL);
       }
-      else if ((reference = refMap.getReference(o)) > -1)// see if this object has been marshalled before.
+      else if (refMap.containsKey(o))// see if this object has been marshalled before.
       {
          out.writeByte(MAGICNUMBER_REF);
-         writeReference(out, reference);
+         writeReference(out, refMap.get(o));
       }
       else if (o instanceof MethodCall)
       {
@@ -404,7 +402,7 @@
       }
    }
 
-   private void marshallGravitateResult(GravitateResult gravitateResult, ObjectOutputStream out, ReferencesMap refMap) throws Exception
+   private void marshallGravitateResult(GravitateResult gravitateResult, ObjectOutputStream out, Map<Object, Integer> refMap) throws Exception
    {
       marshallObject(gravitateResult.isDataFound(), out, refMap);
       if (gravitateResult.isDataFound())
@@ -415,19 +413,20 @@
 
    }
 
-   private int createReference(Object o, ReferencesMap refMap)
+   private int createReference(Object o, Map<Object, Integer> refMap)
    {
-      int reference = refMap.nextAvailableReference();
-      refMap.put(reference, o);
+      int reference = refMap.size();
+      refMap.put(o, reference);
       return reference;
    }
 
    private void marshallString(String s, ObjectOutputStream out) throws Exception
    {
+      //StringUtil.saveString(out, s);
       out.writeObject(s);
    }
 
-   private void marshallMethodCall(MethodCall methodCall, ObjectOutputStream out, ReferencesMap refMap) throws Exception
+   private void marshallMethodCall(MethodCall methodCall, ObjectOutputStream out, Map<Object, Integer> refMap) throws Exception
    {
       out.writeShort(methodCall.getMethodId());
       Object[] args = methodCall.getArgs();
@@ -440,14 +439,14 @@
       }
    }
 
-   private void marshallGlobalTransaction(GlobalTransaction globalTransaction, ObjectOutputStream out, ReferencesMap refMap) throws Exception
+   private void marshallGlobalTransaction(GlobalTransaction globalTransaction, ObjectOutputStream out, Map<Object, Integer> refMap) throws Exception
    {
       out.writeLong(globalTransaction.getId());
       marshallObject(globalTransaction.getAddress(), out, refMap);
    }
 
 
-   private void marshallFqn(Fqn fqn, ObjectOutputStream out, ReferencesMap refMap) throws Exception
+   private void marshallFqn(Fqn fqn, ObjectOutputStream out, Map<Object, Integer> refMap) throws Exception
    {
       boolean isRoot = fqn.isRoot();
       out.writeBoolean(isRoot);
@@ -466,7 +465,7 @@
       ipAddress.writeExternal(out);
    }
 
-   private void marshallCollection(Collection c, ObjectOutputStream out, ReferencesMap refMap) throws Exception
+   private void marshallCollection(Collection c, ObjectOutputStream out, Map refMap) throws Exception
    {
       writeUnsignedInt(out, c.size());
       for (Object o : c)
@@ -475,7 +474,7 @@
       }
    }
 
-   private void marshallMap(Map map, ObjectOutputStream out, ReferencesMap refMap) throws Exception
+   private void marshallMap(Map map, ObjectOutputStream out, Map<Object, Integer> refMap) throws Exception
    {
       int mapSize = map.size();
       writeUnsignedInt(out, mapSize);
@@ -810,50 +809,3 @@
       out.writeLong(i);
    }
 }
-
-class ReferencesMap
-{
-   private ArrayList<Object> referencedObjects = new ArrayList<Object>()
-   {
-      @Override
-      public int indexOf(Object elem)
-      {
-         if (elem == null)
-         {
-            for (int i = 0; i < size(); i++)
-            {
-               if (get(i) == null) return i;
-            }
-         }
-         else
-         {
-            for (int i = 0; i < size(); i++)
-            {
-               Object elInList = get(i);
-               if (elInList.getClass().equals(elem.getClass()) && elem.equals(elInList)) return i;
-            }
-         }
-         return -1;
-      }
-   };
-
-   void put(int reference, Object object)
-   {
-      referencedObjects.add(reference, object);
-   }
-
-   Object get(int reference)
-   {
-      return referencedObjects.get(reference);
-   }
-
-   int nextAvailableReference()
-   {
-      return referencedObjects.size();
-   }
-
-   int getReference(Object object)
-   {
-      return referencedObjects.indexOf(object);
-   }
-}




More information about the jbosscache-commits mailing list