[jboss-svn-commits] JBL Code SVN: r31557 - labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/impl.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Feb 10 15:50:44 EST 2010


Author: baunax
Date: 2010-02-10 15:50:43 -0500 (Wed, 10 Feb 2010)
New Revision: 31557

Added:
   labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultPair.java
Modified:
   labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultAdapter.java
   labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultImpl.java
Log:
changed ExecutionResultAdapter for marshalling internal maps as ExecutionResultPair[]

Modified: labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultAdapter.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultAdapter.java	2010-02-10 20:49:14 UTC (rev 31556)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultAdapter.java	2010-02-10 20:50:43 UTC (rev 31557)
@@ -1,22 +1,32 @@
 package org.drools.runtime.impl;
 
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import javax.xml.bind.annotation.adapters.XmlAdapter;
 
-public class ExecutionResultAdapter extends XmlAdapter<Object[], Map<String,Object>> {
+public class ExecutionResultAdapter extends XmlAdapter<ExecutionResultPair[], Map<String,Object>> {
 
 	@Override
-	public Object[] marshal(Map<String, Object> value) throws Exception {
-		return value.values().toArray(new Object[value.size()]);
+	public ExecutionResultPair[] marshal(Map<String, Object> value) throws Exception {
+		if (value == null || value.isEmpty()) {
+			return new ExecutionResultPair[0];
+		}
+		List<ExecutionResultPair> ret = new ArrayList<ExecutionResultPair>(value.size());
+		for (Map.Entry<String, Object> entry : value.entrySet()) {
+			ret.add(new ExecutionResultPair(entry.getKey(), entry.getValue()));
+		}
+		
+		return ret.toArray(new ExecutionResultPair[value.size()]);
 	}
 
 	@Override
-	public Map<String, Object> unmarshal(Object[] value) throws Exception {
+	public Map<String, Object> unmarshal(ExecutionResultPair[] value) throws Exception {
 		Map<String, Object> r = new HashMap<String, Object>();
-		for( Object c : value ) {
-			r.put(c.toString(), c);
+		for( ExecutionResultPair p : value ) {
+			r.put(p.getKey(), p.getValue());
 		}
 		return r;
 	}

Modified: labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultImpl.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultImpl.java	2010-02-10 20:49:14 UTC (rev 31556)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultImpl.java	2010-02-10 20:50:43 UTC (rev 31557)
@@ -7,7 +7,9 @@
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.drools.runtime.ExecutionResults;
 
@@ -17,11 +19,12 @@
 	
 	private static final long serialVersionUID = 1L;
 	
-//	@XmlJavaTypeAdapter(ExecutionResultAdapter.class)
-//	@XmlElement(name="results")
+	@XmlJavaTypeAdapter(ExecutionResultAdapter.class)
+	@XmlElement(name="results")
     HashMap<String, Object> results = new HashMap<String, Object>();
-//	@XmlJavaTypeAdapter(ExecutionResultAdapter.class)
-//	@XmlElement(name="facts")
+
+	@XmlJavaTypeAdapter(ExecutionResultAdapter.class)
+	@XmlElement(name="facts")
 	HashMap<String, Object> facts = new HashMap<String, Object>();
     
     /* (non-Javadoc)

Added: labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultPair.java
===================================================================
--- labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultPair.java	                        (rev 0)
+++ labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultPair.java	2010-02-10 20:50:43 UTC (rev 31557)
@@ -0,0 +1,71 @@
+package org.drools.runtime.impl;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+
+ at XmlAccessorType(XmlAccessType.NONE)
+public class ExecutionResultPair {
+
+	@XmlAttribute(name = "key")
+	private String key;
+
+	@XmlElement
+	private Object value;
+
+	public ExecutionResultPair() {
+	}
+
+	public ExecutionResultPair(String key, Object value) {
+		this.key = key;
+		this.value = value;
+	}
+
+	public String getKey() {
+		return key;
+	}
+
+	public void setKey(String key) {
+		this.key = key;
+	}
+
+	public Object getValue() {
+		return value;
+	}
+
+	public void setValue(Object value) {
+		this.value = value;
+	}
+
+	@Override
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime * result + ((key == null) ? 0 : key.hashCode());
+		result = prime * result + ((value == null) ? 0 : value.hashCode());
+		return result;
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (this == obj)
+			return true;
+		if (obj == null)
+			return false;
+		if (getClass() != obj.getClass())
+			return false;
+		ExecutionResultPair other = (ExecutionResultPair) obj;
+		if (key == null) {
+			if (other.key != null)
+				return false;
+		} else if (!key.equals(other.key))
+			return false;
+		if (value == null) {
+			if (other.value != null)
+				return false;
+		} else if (!value.equals(other.value))
+			return false;
+		return true;
+	}
+}


Property changes on: labs/jbossrules/branches/camel_jaxb_marshaller2-lucaz/drools-core/src/main/java/org/drools/runtime/impl/ExecutionResultPair.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF



More information about the jboss-svn-commits mailing list