[jboss-svn-commits] JBL Code SVN: r31623 - labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/xml/jaxb/util.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Feb 12 12:21:59 EST 2010


Author: baunax
Date: 2010-02-12 12:21:58 -0500 (Fri, 12 Feb 2010)
New Revision: 31623

Modified:
   labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/xml/jaxb/util/JaxbFlatQueryResultsAdapter.java
Log:
changed to be more generic

Modified: labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/xml/jaxb/util/JaxbFlatQueryResultsAdapter.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/xml/jaxb/util/JaxbFlatQueryResultsAdapter.java	2010-02-12 16:52:54 UTC (rev 31622)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/xml/jaxb/util/JaxbFlatQueryResultsAdapter.java	2010-02-12 17:21:58 UTC (rev 31623)
@@ -1,7 +1,7 @@
 package org.drools.xml.jaxb.util;
 
 import java.util.ArrayList;
-import java.util.List;
+import java.util.Arrays;
 
 import javax.xml.bind.annotation.adapters.XmlAdapter;
 
@@ -11,26 +11,38 @@
 	@Override
 	public Object[] marshal(ArrayList<ArrayList<Object>> value) throws Exception {
 		if (value == null || value.isEmpty()) {
-			return new JaxbPair[0];
+			return new Object[0];
 		}
-		List<Object> ret = new ArrayList<Object>();
-		for (ArrayList<Object> arrayList : value) {
-			for (Object object : arrayList) {
-				ret.add(object);
+		Object[] ret = new Object[value.size()];
+		int i = 0;
+		for (ArrayList<Object> list : value) {
+			int j = 0;
+			Object[] sublist = new Object[list.size()];
+			for (Object object : list) {
+				sublist[j++] = object;
 			}
+			ret[i++] = sublist;
 		}
-		return ret.toArray(new Object[ret.size()]);
+		return ret;
 	}
 
 	@Override
 	public ArrayList<ArrayList<Object>> unmarshal(Object[] value) throws Exception {
-		ArrayList<Object> objects = new ArrayList<Object>();
+		ArrayList<ArrayList<Object>> ret = new ArrayList<ArrayList<Object>>();
 		for( Object o : value ) {
-			objects.add(o);
+			ArrayList<Object> subList;
+			if (o instanceof Object[]) {
+				Object[] list = (Object[]) o;
+				subList = new ArrayList<Object>(list.length);
+				for (Object obj : list) {
+					subList.add(obj);
+				} 
+			} else {
+				subList = new ArrayList<Object>(Arrays.asList(new Object[] {o}));
+			}
+			ret.add(subList);
 		}
-		ArrayList<ArrayList<Object>> list = new ArrayList<ArrayList<Object>>();
-		list.add(objects);
-		return list;
+		return ret;
 	}
 
 }



More information about the jboss-svn-commits mailing list