/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.portal.livetrace; import java.util.Map; import com.enonic.cms.core.portal.datasource.DataSourceType; import com.enonic.cms.core.portal.datasource.handler.DataSourceRequest; public class DatasourceExecutionTracer { public static DatasourceExecutionTrace startTracing( DataSourceType datasourcesType, String datasourceMethodName, LivePortalTraceService livePortalTraceService ) { if ( !livePortalTraceService.tracingEnabled() ) { return null; } if ( datasourceMethodName == null ) { return null; } return livePortalTraceService.startDatasourceExecutionTracing( datasourcesType, datasourceMethodName ); } public static void stopTracing( DatasourceExecutionTrace trace, LivePortalTraceService livePortalTraceService ) { if ( trace != null && livePortalTraceService != null ) { livePortalTraceService.stopTracing( trace ); } } public static void traceRunnableCondition( DatasourceExecutionTrace trace, String runnableCondition ) { if ( trace != null ) { trace.setRunnableCondition( runnableCondition ); } } public static void traceIsExecuted( DatasourceExecutionTrace trace, boolean isExecuted ) { if ( trace != null ) { trace.setExecuted( isExecuted ); } } public static void traceMethodCall( DataSourceRequest request, DatasourceExecutionTrace trace ) { if ( trace != null && request != null ) { for ( final Map.Entry<String, String> param : request.getParams().entrySet() ) { trace.addDatasourceMethodArgument( new DatasourceMethodArgument( param.getKey(), param.getValue() ) ); } } } public static void traceIsCacheUsed( boolean cacheUsed, LivePortalTraceService livePortalTraceService ) { if ( livePortalTraceService == null ) { return; } DatasourceExecutionTrace trace = livePortalTraceService.getCurrentTrace().getDatasourceExecutionTrace(); if ( trace != null ) { trace.setCacheUsed( cacheUsed ); } } }