/*
* Copyright © 2010 by Ondrej Skalicka. All Rights Reserved
*/
package cz.cvut.felk.cig.jcop.problem.knapsack;
import cz.cvut.felk.cig.jcop.problem.BaseReversibleOperation;
import cz.cvut.felk.cig.jcop.problem.Configuration;
import cz.cvut.felk.cig.jcop.problem.OperationHistory;
import java.util.List;
/**
* Adds item to knapsack
*
* @author Ondrej Skalicka
*/
public class AddOperation extends BaseReversibleOperation {
/**
* Item to be added to knapsack.
*/
protected KnapsackItem knapsackItem;
/**
* Creates new AddOperation associated with knapsackItem
*
* @param knapsackItem item to associate operation with
*/
public AddOperation(KnapsackItem knapsackItem) {
this.knapsackItem = knapsackItem;
}
public Configuration execute(Configuration configuration) {
List<Integer> newConfiguration = configuration.asList();
newConfiguration.set(this.knapsackItem.getIndex(), 1);
return new Configuration(newConfiguration, new OperationHistory(this, configuration.getOperationHistory()));
}
@Override
public String toString() {
return "AddOperation{" +
"knapsackItem=" + knapsackItem +
'}';
}
}