1 9 package com.vladium.emma.rt; 10 11 import java.io.File ; 12 13 import com.vladium.emma.IAppConstants; 14 import com.vladium.emma.data.DataFactory; 15 import com.vladium.emma.data.ICoverageData; 16 import com.vladium.logging.Logger; 17 18 22 abstract 23 class RTCoverageDataPersister 24 { 25 27 29 31 37 static void dumpCoverageData (final ICoverageData cdata, final boolean useSnapshot, 38 final File outFile, final boolean merge) 39 { 40 try 41 { 42 if (cdata != null) 43 { 44 final Logger log = Logger.getLogger (); 46 final boolean info = log.atINFO (); 47 48 final long start = info ? System.currentTimeMillis () : 0; 49 { 50 final ICoverageData cdataView = useSnapshot ? cdata.shallowCopy () : cdata; 51 52 synchronized (Object .class) { 54 DataFactory.persist (cdataView, outFile, merge); 55 } 56 } 57 if (info) 58 { 59 final long end = System.currentTimeMillis (); 60 61 log.info ("runtime coverage data " + (merge ? "merged into" : "written to") + " [" + outFile.getAbsolutePath () + "] {in " + (end - start) + " ms}"); 62 } 63 } 64 } 65 catch (Throwable t) 66 { 67 t.printStackTrace (); 69 70 throw new RuntimeException (IAppConstants.APP_NAME + " failed to dump coverage data: " + t.toString ()); 72 } 73 } 74 75 77 } | Popular Tags |