Incorporated code review comments from r350

This commit is contained in:
Inderjeet Singh 2008-12-30 18:54:33 +00:00
parent 9612bb3601
commit 05f54f3552
2 changed files with 26 additions and 16 deletions

View File

@ -161,14 +161,13 @@ public final class GsonBuilder {
}
/**
* Configures Gson to include or exclude inner classes.
*
* @param value the boolean value on whether or not {@code Gson} should serialize inner classes
* Configures Gson to exclude inner classes during serialization.
*
* @return a reference to this {@code GsonBuilder} object to fulfill the "Builder" pattern
* @since 1.3
*/
public GsonBuilder serializeInnerClasses(boolean value) {
serializeInnerClasses = value;
public GsonBuilder disableInnerClassSerialization() {
serializeInnerClasses = false;
return this;
}

View File

@ -30,47 +30,58 @@ import junit.framework.TestCase;
*/
public class FieldExclusionTest extends TestCase {
private static final String VALUE = "blah_1234";
private Outer outer;
@Override
protected void setUp() throws Exception {
super.setUp();
outer = new Outer();
}
public void testDefaultInnerClassExclusion() throws Exception {
Gson gson = new Gson();
TestInnerClass target = new TestInnerClass(VALUE);
Outer.Inner target = outer.new Inner(VALUE);
String result = gson.toJson(target);
assertEquals(target.toJson(), result);
gson = new GsonBuilder().create();
target = new TestInnerClass(VALUE);
target = outer.new Inner(VALUE);
result = gson.toJson(target);
assertEquals(target.toJson(), result);
}
public void testInnerClassExclusion() throws Exception {
Gson gson = new GsonBuilder().serializeInnerClasses(false).create();
TestInnerClass target = new TestInnerClass(VALUE);
Gson gson = new GsonBuilder().disableInnerClassSerialization().create();
Outer.Inner target = outer.new Inner(VALUE);
String result = gson.toJson(target);
assertEquals("", result);
}
public void testDefaultNestedStaticClassIncluded() throws Exception {
Gson gson = new Gson();
TestInnerClass target = new TestInnerClass(VALUE);
Outer.Inner target = outer.new Inner(VALUE);
String result = gson.toJson(target);
assertEquals(target.toJson(), result);
gson = new GsonBuilder().create();
target = new TestInnerClass(VALUE);
target = outer.new Inner(VALUE);
result = gson.toJson(target);
assertEquals(target.toJson(), result);
}
private class TestInnerClass extends TestStaticNestedClass {
public TestInnerClass(String value) {
super(value);
private static class Outer {
private class Inner extends NestedClass {
public Inner(String value) {
super(value);
}
}
}
private static class TestStaticNestedClass {
private static class NestedClass {
private final String value;
public TestStaticNestedClass(String value) {
public NestedClass(String value) {
this.value = value;
}