示例#1
0
  private IntegerVariable createFeatureVariable(Feature feature) {
    String id = feature.getId();
    // an unbound feature has cardinality [0..1],
    // a selected feature has cardinality [1..1],
    // a deselected feature has cardinality [0..0]
    int minCardinality = (FeatureState.SELECTED.equals(feature.getConfigurationState())) ? 1 : 0;
    int maxCardinality = (FeatureState.DESELECTED.equals(feature.getConfigurationState())) ? 0 : 1;

    log.debug(
        "Create IntegerVariable for '" + id + "' [" + minCardinality + "," + maxCardinality + "].");
    IntegerVariable intNodeVariable = Choco.makeIntVar(id, minCardinality, maxCardinality);
    getModel().addVariable(intNodeVariable);
    nodeVariables.put(id, intNodeVariable);
    return intNodeVariable;
  }