/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.web.analytics;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.opengamma.core.position.Portfolio;
import com.opengamma.engine.value.ValueRequirement;
import com.opengamma.engine.view.ViewResultModel;
import com.opengamma.engine.view.compilation.CompiledViewDefinition;
import com.opengamma.engine.view.cycle.ViewCycle;
import com.opengamma.id.UniqueId;
import com.opengamma.util.ArgumentChecker;
import com.opengamma.web.analytics.formatting.TypeFormatter.Format;
/**
* {@link AnalyticsView} that decorates another view and logs the time taken to execute every method call. Intended
* to help track down a performance regression.
*/
/* package */ class TimingAnalyticsView implements AnalyticsView {
private static final Logger s_logger = LoggerFactory.getLogger(TimingAnalyticsView.class);
private final AnalyticsView _delegate;
/* package */ TimingAnalyticsView(AnalyticsView delegate) {
ArgumentChecker.notNull(delegate, "delegate");
_delegate = delegate;
}
@Override
public List<String> updateStructure(CompiledViewDefinition compiledViewDefinition, Portfolio portfolio) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.updateStructure");
List<String> retVal = _delegate.updateStructure(compiledViewDefinition, portfolio);
s_logger.trace("updateStructure completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public String viewCompilationFailed(Throwable t) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.viewCompilationFailed");
String retVal = _delegate.viewCompilationFailed(t);
s_logger.trace("viewCompilationFailed completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public List<String> updateResults(ViewResultModel results,
ViewCycle viewCycle) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.updateResults");
List<String> retVal = _delegate.updateResults(results, viewCycle);
s_logger.trace("updateResults completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public GridStructure getGridStructure(GridType gridType, int viewportId) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.getGridStructure");
GridStructure retVal = _delegate.getGridStructure(gridType, viewportId);
s_logger.trace("getGridStructure completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public GridStructure getInitialGridStructure(GridType gridType) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.getGridStructure");
GridStructure retVal = _delegate.getInitialGridStructure(gridType);
s_logger.trace("getGridStructure completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public boolean createViewport(int requestId,
GridType gridType,
int viewportId,
String callbackId,
String structureCallbackId,
ViewportDefinition viewportDefinition) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.createViewport");
boolean retVal = _delegate.createViewport(requestId, gridType, viewportId, callbackId, structureCallbackId, viewportDefinition);
s_logger.trace("createViewport completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public String updateViewport(GridType gridType,
int viewportId,
ViewportDefinition viewportDefinition) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.updateViewport");
String retVal = _delegate.updateViewport(gridType, viewportId, viewportDefinition);
s_logger.trace("updateViewport completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public void deleteViewport(GridType gridType, int viewportId) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.deleteViewport");
_delegate.deleteViewport(gridType, viewportId);
s_logger.trace("deleteViewport completed in " + (System.currentTimeMillis() - startTime) + "ms");
}
@Override
public ViewportResults getData(GridType gridType, int viewportId) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.getData");
ViewportResults retVal = _delegate.getData(gridType, viewportId);
s_logger.trace("getData completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public void openDependencyGraph(int requestId,
GridType gridType,
int graphId, String callbackId, int row, int col) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.openDependencyGraph");
_delegate.openDependencyGraph(requestId, gridType, graphId, callbackId, row, col);
s_logger.trace("openDependencyGraph completed in " + (System.currentTimeMillis() - startTime) + "ms");
}
@Override
public void openDependencyGraph(int requestId,
GridType gridType,
int graphId,
String callbackId,
String calcConfigName,
ValueRequirement valueRequirement) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.openDependencyGraph");
_delegate.openDependencyGraph(requestId, gridType, graphId, callbackId, calcConfigName, valueRequirement);
s_logger.trace("openDependencyGraph completed in " + (System.currentTimeMillis() - startTime) + "ms");
}
@Override
public void closeDependencyGraph(GridType gridType, int graphId) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.closeDependencyGraph");
_delegate.closeDependencyGraph(gridType, graphId);
s_logger.trace("closeDependencyGraph completed in " + (System.currentTimeMillis() - startTime) + "ms");
}
@Override
public GridStructure getGridStructure(GridType gridType, int graphId, int viewportId) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.getGridStructure");
GridStructure retVal = _delegate.getGridStructure(gridType, graphId, viewportId);
s_logger.trace("getGridStructure completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public GridStructure getInitialGridStructure(GridType gridType, int graphId) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.getGridStructure");
GridStructure retVal = _delegate.getInitialGridStructure(gridType, graphId);
s_logger.trace("getGridStructure completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public boolean createViewport(int requestId,
GridType gridType,
int graphId,
int viewportId,
String callbackId,
String structureCallbackId,
ViewportDefinition viewportDefinition) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.createViewport");
boolean retVal = _delegate.createViewport(requestId,
gridType,
graphId,
viewportId,
callbackId,
structureCallbackId,
viewportDefinition);
s_logger.trace("createViewport completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public String updateViewport(GridType gridType,
int graphId,
int viewportId, ViewportDefinition viewportDefinition) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.updateViewport");
String retVal = _delegate.updateViewport(gridType, graphId, viewportId, viewportDefinition);
s_logger.trace("updateViewport completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public void deleteViewport(GridType gridType,
int graphId,
int viewportId) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.deleteViewport");
_delegate.deleteViewport(gridType, graphId, viewportId);
s_logger.trace("deleteViewport completed in " + (System.currentTimeMillis() - startTime) + "ms");
}
@Override
public ViewportResults getData(GridType gridType,
int graphId,
int viewportId) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.getData");
ViewportResults retVal = _delegate.getData(gridType, graphId, viewportId);
s_logger.trace("getData completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public List<String> entityChanged(MasterChangeNotification<?> notification) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.entityChanged");
List<String> retVal = _delegate.entityChanged(notification);
s_logger.trace("entityChanged completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public List<String> portfolioChanged() {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.entityChanged");
List<String> retVal = _delegate.portfolioChanged();
s_logger.trace("portfolioChanged completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public ViewportResults getAllGridData(GridType gridType, Format format) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.getAllGridData");
ViewportResults retVal = _delegate.getAllGridData(gridType, format);
s_logger.trace("getAllGridData completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public UniqueId getViewDefinitionId() {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.getViewDefinitionId");
UniqueId retVal = _delegate.getViewDefinitionId();
s_logger.trace("getViewDefinitionId completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public List<ErrorInfo> getErrors() {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.getError");
List<ErrorInfo> retVal = _delegate.getErrors();
s_logger.trace("getError completed in " + (System.currentTimeMillis() - startTime) + "ms");
return retVal;
}
@Override
public void deleteError(long id) {
long startTime = System.currentTimeMillis();
s_logger.trace("Executing AnalyticsView.deleteError");
_delegate.deleteError(id);
s_logger.trace("deleteError completed in " + (System.currentTimeMillis() - startTime) + "ms");
}
}