// which includes all genuineVariableDescriptors
Collection<GenuineVariableDescriptor> variableDescriptors = entityDescriptor.getGenuineVariableDescriptors();
List<MoveSelectorConfig> subMoveSelectorConfigList = new ArrayList<MoveSelectorConfig>(
variableDescriptors.size());
for (GenuineVariableDescriptor variableDescriptor : variableDescriptors) {
ChangeMoveSelectorConfig changeMoveSelectorConfig = new ChangeMoveSelectorConfig();
EntitySelectorConfig changeEntitySelectorConfig = new EntitySelectorConfig();
changeEntitySelectorConfig.setMimicSelectorRef(mimicSelectorId);
changeMoveSelectorConfig.setEntitySelectorConfig(changeEntitySelectorConfig);
ValueSelectorConfig changeValueSelectorConfig = new ValueSelectorConfig();
changeValueSelectorConfig.setVariableName(variableDescriptor.getVariableName());
if (configPolicy.getValueSorterManner().hasSorter(variableDescriptor)) {
if (variableDescriptor.isValueRangeEntityIndependent()) {
changeValueSelectorConfig.setCacheType(SelectionCacheType.PHASE);
} else {
changeValueSelectorConfig.setCacheType(SelectionCacheType.STEP);
}
changeValueSelectorConfig.setSelectionOrder(SelectionOrder.SORTED);
changeValueSelectorConfig.setSorterManner(configPolicy.getValueSorterManner());
}
changeMoveSelectorConfig.setValueSelectorConfig(changeValueSelectorConfig);
subMoveSelectorConfigList.add(changeMoveSelectorConfig);
}
if (subMoveSelectorConfigList.size() > 1) {
moveSelectorConfig_ = new CartesianProductMoveSelectorConfig(subMoveSelectorConfigList);
} else {