@Override
    public MoveSelector buildBaseMoveSelector(HeuristicConfigPolicy configPolicy,
            SelectionCacheType minimumCacheType, boolean randomSelection) {
        PillarSelectorConfig pillarSelectorConfig_ = pillarSelectorConfig == null ? new PillarSelectorConfig()
                : pillarSelectorConfig;
        List<String> variableNameIncludeList = valueSelectorConfig == null ? null
                : valueSelectorConfig.getVariableName() == null ? null
                : Collections.singletonList(valueSelectorConfig.getVariableName());
        PillarSelector pillarSelector = pillarSelectorConfig_.buildPillarSelector(configPolicy,
                minimumCacheType, SelectionOrder.fromRandomSelectionBoolean(randomSelection), variableNameIncludeList);
        ValueSelectorConfig valueSelectorConfig_ = valueSelectorConfig == null ? new ValueSelectorConfig()
                : valueSelectorConfig;
        ValueSelector valueSelector = valueSelectorConfig_.buildValueSelector(configPolicy,
                pillarSelector.getEntityDescriptor(),
                minimumCacheType, SelectionOrder.fromRandomSelectionBoolean(randomSelection));
        return new PillarChangeMoveSelector(pillarSelector, valueSelector, randomSelection);
    }
@Override
    public MoveSelector buildBaseMoveSelector(HeuristicConfigPolicy configPolicy,
            SelectionCacheType minimumCacheType, boolean randomSelection) {
        PillarSelectorConfig pillarSelectorConfig_ = pillarSelectorConfig == null ? new PillarSelectorConfig()
                : pillarSelectorConfig;
        List<String> variableNameIncludeList = valueSelectorConfig == null ? null
                : valueSelectorConfig.getVariableName() == null ? null
                : Collections.singletonList(valueSelectorConfig.getVariableName());
        PillarSelector pillarSelector = pillarSelectorConfig_.buildPillarSelector(configPolicy,
                minimumCacheType, SelectionOrder.fromRandomSelectionBoolean(randomSelection), variableNameIncludeList);
        ValueSelectorConfig valueSelectorConfig_ = valueSelectorConfig == null ? new ValueSelectorConfig()
                : valueSelectorConfig;
        ValueSelector valueSelector = valueSelectorConfig_.buildValueSelector(configPolicy,
                pillarSelector.getEntityDescriptor(),
                minimumCacheType, SelectionOrder.fromRandomSelectionBoolean(randomSelection));
        return new PillarChangeMoveSelector(pillarSelector, valueSelector, randomSelection);
    }
@ Override public MoveSelector buildBaseMoveSelector ( HeuristicConfigPolicy configPolicy , SelectionCacheType minimumCacheType , boolean randomSelection ) { PillarSelectorConfig pillarSelectorConfig_ = pillarSelectorConfig == null ? new PillarSelectorConfig ( ) : pillarSelectorConfig ; List < String > variableNameIncludeList = valueSelectorConfig == null ? null : valueSelectorConfig . getVariableName ( ) == null ? null : Collections . singletonList ( valueSelectorConfig . getVariableName ( ) ) ; PillarSelector pillarSelector = pillarSelectorConfig_ . buildPillarSelector ( configPolicy , minimumCacheType , SelectionOrder . fromRandomSelectionBoolean ( randomSelection ) , variableNameIncludeList ) ; ValueSelectorConfig valueSelectorConfig_ = valueSelectorConfig == null ? new ValueSelectorConfig ( ) : valueSelectorConfig ; ValueSelector valueSelector = valueSelectorConfig_ . buildValueSelector ( configPolicy , pillarSelector . getEntityDescriptor ( ) , minimumCacheType , SelectionOrder . fromRandomSelectionBoolean ( randomSelection ) ) ; return new PillarChangeMoveSelector ( pillarSelector , valueSelector , randomSelection ) ; }
************************************************************************
************************************************************************