package com.oneliang.test.report;

import java.util.HashMap;
import java.util.Map;

/**
 * only support same thread
 * @author oneliang
 */
public class ReportManager {

    private static ThreadLocal<Map<String, Object>> threadLocalMap = new ThreadLocal<Map<String, Object>>(){
        protected java.util.Map<String,Object> initialValue() {
            return new HashMap<String, Object>();
        };
    };

    public static void put(String key,Object value){
        threadLocalMap.get().put(key, value);
    }
    public static void report(Reporter reporter){
        if(reporter!=null){
            reporter.report(threadLocalMap.get());
        }
    }
}

@@ -109,16 +109,20 @@
  thread%0A
+ * %0A
  * @auth
@@ -274,16 +274,17 @@
 ject%3E%3E()
+ 
 %7B%0A      
@@ -316,16 +316,17 @@
 %3CString,
+ 
 Object%3E 
@@ -449,16 +449,17 @@
 ing key,
+ 
 Object v
@@ -463,16 +463,17 @@
 t value)
+ 
 %7B%0A      
@@ -514,24 +514,25 @@
 lue);%0A    %7D%0A
+%0A
     public s
@@ -567,16 +567,17 @@
 eporter)
+ 
 %7B%0A      
@@ -580,16 +580,17 @@
       if
+ 
 (reporte
@@ -594,15 +594,18 @@
 rter
+ 
 !=
+ 
 null)
+ 
 %7B%0A  
@@ -618,24 +618,110 @@
     
-reporter.report(
+Map%3CString, Object%3E dataMap = threadLocalMap.get();%0A            reporter.report(dataMap);%0A            
 thre
@@ -731,21 +731,23 @@
 ocalMap.
-get()
+remove(
 );%0A     

optimize code,release resource