in gson/src/java/org/apache/fulcrum/json/gson/GSONBuilderService.java [352:386]
private ExclusionStrategy exclude(Class clazz, String... filterAttrs) {
return new ExclusionStrategy() {
public Class<?> excludedThisClass;
public HashSet<String> excludedAttributes;
private ExclusionStrategy init(Class<?> excludedThisClass,
String... filterAttrs) {
this.excludedThisClass = excludedThisClass;
if (filterAttrs != null) {
this.excludedAttributes = new HashSet<String>(
filterAttrs.length);
Collections.addAll(this.excludedAttributes, filterAttrs);
} else
this.excludedAttributes = new HashSet<String>();
return this;
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
return (excludedThisClass != null) ? excludedThisClass
.equals(clazz) : false;
}
@Override
public boolean shouldSkipField(FieldAttributes paramFieldAttributes) {
// return paramFieldAttributes.getDeclaringClass() ==
// excludedThisClass &&
// excludesAttributes.contains(paramFieldAttributes.getName());
return !excludedAttributes.isEmpty() ? this.excludedAttributes
.contains(paramFieldAttributes.getName()) : false;
}
}.init(clazz, filterAttrs);
}