performance improvement in AbstractBeanProcessor.getMergedExcludes(), avoids the...
authorAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Tue, 2 Jun 2015 10:47:52 +0000 (12:47 +0200)
committerAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Tue, 2 Jun 2015 11:07:51 +0000 (13:07 +0200)
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/json/processor/bean/AbstractBeanProcessor.java

index 8688e011a13ce6cb404d48f8c6429fc66094f9da..6752f86912f1cf203751c28dd4c92077a4c6dd88 100644 (file)
@@ -43,6 +43,8 @@ public abstract class AbstractBeanProcessor<T extends Object> implements JsonBea
 \r
     private Set<String> excludes = new HashSet<String>();\r
 \r
+    private Set<String> mergedExcludes = null;\r
+\r
     public Set<String> getExcludes() {\r
         return excludes;\r
     }\r
@@ -78,10 +80,13 @@ public abstract class AbstractBeanProcessor<T extends Object> implements JsonBea
      * @return\r
      */\r
     protected Set<String> getMergedExcludes(){\r
-        Set<String> mergedExcludes = new HashSet<String>(excludes);\r
-        if(getIgnorePropNames() != null){\r
-            mergedExcludes.addAll(getIgnorePropNames());\r
+        if(mergedExcludes  == null) {\r
+            mergedExcludes = new HashSet<String>(excludes);\r
+            if(getIgnorePropNames() != null){\r
+                mergedExcludes.addAll(getIgnorePropNames());\r
+            }\r
         }\r
+\r
         return mergedExcludes;\r
     }\r
 \r
@@ -99,9 +104,11 @@ public abstract class AbstractBeanProcessor<T extends Object> implements JsonBea
     }\r
 \r
 \r
-    /* (non-Javadoc)\r
-     * @see net.sf.json.processors.JsonBeanProcessor#processBean(java.lang.Object, net.sf.json.JsonConfig)\r
+\r
+    /**\r
+     * {@inheritDoc}\r
      */\r
+    @Override\r
     public final JSONObject processBean(Object bean, JsonConfig jsonConfig) {\r
 \r
         if(logger.isDebugEnabled()){\r