Author: mcucchiara
Date: Tue Mar 8 14:24:16 2011
New Revision: 1079368
URL: http://svn.apache.org/viewvc?rev=1079368&view=rev
Log:
WW-3524 - Added field bridge support
Added:
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/annotations/JSONFieldBridge.java
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/annotations/JSONParameter.java
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/FieldBridge.java
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/ParameterizedBridge.java
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/bridge/StringBridge.java
struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/JSONWriterTest.java
struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/jsonwriter-write-bean-01.txt
struts/struts2/trunk/plugins/json/src/test/resources/org/apache/struts2/json/jsonwriter-write-bean-02.txt
Modified:
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java
struts/struts2/trunk/plugins/json/src/test/java/org/apache/struts2/json/TestUtils.java
Modified:
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java?rev=1079368&r1=1079367&r2=1079368&view=diff
==
---
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java
(original)
+++
struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java
Tue Mar 8 14:24:16 2011
@@ -23,6 +23,10 @@ package org.apache.struts2.json;
import com.opensymphony.xwork2.util.logging.Logger;
import com.opensymphony.xwork2.util.logging.LoggerFactory;
import org.apache.struts2.json.annotations.JSON;
+import org.apache.struts2.json.annotations.JSONFieldBridge;
+import org.apache.struts2.json.annotations.JSONParameter;
+import org.apache.struts2.json.bridge.FieldBridge;
+import org.apache.struts2.json.bridge.ParameterizedBridge;
import java.beans.BeanInfo;
import java.beans.Introspector;
@@ -33,13 +37,7 @@ import java.text.CharacterIterator;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.StringCharacterIterator;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Stack;
+import java.util.*;
import java.util.regex.Pattern;
/**
@@ -70,8 +68,7 @@ class JSONWriter {
private boolean excludeNullProperties;
/**
- * @param object
- *Object to be serialized into JSON
+ * @param object Object to be serialized into JSON
* @return JSON string for object
* @throws JSONException
*/
@@ -80,13 +77,12 @@ class JSONWriter {
}
/**
- * @param object
- *Object to be serialized into JSON
+ * @param object Object to be serialized into JSON
* @return JSON string for object
* @throws JSONException
*/
public String write(Object object, Collection excludeProperties,
-Collection includeProperties, boolean
excludeNullProperties) throws JSONException {
+Collection includeProperties, boolean
excludeNullProperties) throws JSONException {
this.excludeNullProperties = excludeNullProperties;
this.buf.setLength(0);
this.root = object;
@@ -139,7 +135,7 @@ class JSONWriter {
if (object instanceof Class) {
this.string(object);
} else if (object instanceof Boolean) {
-this.bool(((Boolean) object).booleanValue());
+this.bool((Boolean) object);
} else if (object instanceof Number) {
this.add(object);
} else if (object instanceof String) {
@@ -184,42 +180,22 @@ class JSONWriter {
PropertyDescriptor[] props = info.getPropertyDescriptors();
boolean hasData = false;
-for (int i = 0; i < props.length; ++i) {
-PropertyDescriptor prop = props[i];
+for (PropertyDescriptor prop : props) {
String name = prop.getName();
Method accessor = prop.getReadMethod();
-Method baseAccessor = null;
-if (clazz.getName().indexOf("$$EnhancerByCGLIB$$") > -1) {
-try {
-baseAccessor = Class.forName(
-clazz.getName().substring(0,
clazz.getName().indexOf("$$"))).getMethod(
-accessor.getName(),
accessor.getParameterTypes());
-} catch (Exc