/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.engine.view.worker; import org.springframework.beans.factory.InitializingBean; import com.opengamma.engine.view.ViewDefinition; import com.opengamma.engine.view.execution.ViewExecutionOptions; import com.opengamma.util.ArgumentChecker; /** * Implementation of {@link SequencePartitioningViewProcessWorkerFactory} that uses statically set parameters for the partitioning. */ public class StaticSequencePartitioningViewProcessWorkerFactory extends SequencePartitioningViewProcessWorkerFactory implements InitializingBean { private volatile int _saturation = 1; private volatile int _minimumCycles = 1; private volatile int _maximumCycles = Integer.MAX_VALUE; public StaticSequencePartitioningViewProcessWorkerFactory(final ViewProcessWorkerFactory delegate) { super(delegate); } public void setSaturation(final int saturation) { ArgumentChecker.isTrue(saturation > 0, "saturation"); _saturation = saturation; } public int getSaturation() { return _saturation; } public void setMinimumCycles(final int minimumCycles) { ArgumentChecker.isTrue(minimumCycles > 0, "minimumCycles"); _minimumCycles = minimumCycles; } public int getMinimumCycles() { return _minimumCycles; } public void setMaximumCycles(final int maximumCycles) { ArgumentChecker.isTrue(maximumCycles > 0, "maximumCycles"); _maximumCycles = maximumCycles; } public int getMaximumCycles() { return _maximumCycles; } // SequencePartitioningViewProcessWorkerFactory @Override protected int estimateSaturation(final ViewProcessWorkerContext context, final ViewExecutionOptions executionOptions, final ViewDefinition viewDefinition) { return getSaturation(); } @Override protected int estimateMinimumCycles(final ViewProcessWorkerContext context, final ViewExecutionOptions executionOptions, final ViewDefinition viewDefinition) { return getMinimumCycles(); } @Override protected int estimateMaximumCycles(final ViewProcessWorkerContext context, final ViewExecutionOptions executionOptions, final ViewDefinition viewDefinition) { return getMaximumCycles(); } // InitializingBean @Override public void afterPropertiesSet() throws Exception { ArgumentChecker.isTrue(getMinimumCycles() <= getMaximumCycles(), "minimumCycles/maximumCycles"); } }