/* * Copyright © 2010 by Ondrej Skalicka. All Rights Reserved */ package cz.cvut.felk.cig.jcop.problem.bucket; import cz.cvut.felk.cig.jcop.problem.Configuration; import cz.cvut.felk.cig.jcop.problem.Operation; import cz.cvut.felk.cig.jcop.problem.OperationHistory; import java.util.List; /** * Spills bucket empty. * * @author Ondrej Skalicka */ public class SpillOperation implements Operation { /** * Bucket to be spilled (emptied). */ protected BucketItem bucketItem; /** * Creates new SpillOperation for given bucket. * * @param bucketItem bucket to spill */ public SpillOperation(BucketItem bucketItem) { this.bucketItem = bucketItem; } public Configuration execute(Configuration configuration) { List<Integer> newConfiguration = configuration.asList(); newConfiguration.set(this.bucketItem.getIndex(), 0); return new Configuration(newConfiguration, new OperationHistory(this, configuration.getOperationHistory())); } @Override public String toString() { return "SpillOperation{" + "bucketItem=" + bucketItem + '}'; } }