/**
* Copyright (C) 2008 Progress Software, Inc. All rights reserved.
* http://fusesource.com
*
* The software in this package is published under the terms of the AGPL license
* a copy of which has been included with this distribution in the license.txt file.
*/
package org.fusesource.cloudmix.common.controller.constraints.agent;
import java.util.Collection;
import org.fusesource.cloudmix.common.controller.AgentController;
import org.fusesource.cloudmix.common.controller.FeatureController;
/**
* Simple interface to implement constraints checkers
* @param <T>
*/
public interface IAgentConstraintChecker {
/**
* filters the given list of candidates and return the subset that meet the constraint enforced by this
* checker
* @param profileId part of the context in which the constraints are Applied
* @param fc part of the context in which the constraints are Applied
* @param someCandidates the list of the candidates to check against the constraint enforced by this
* checker. cannot be null
* @return return a subset of the candidates. never returns a null object
*/
Collection<AgentController> applyConstraint(String profileId,
FeatureController fc,
Collection<AgentController> someCandidates);
}