/**
* 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.feature;
import java.util.List;
import org.fusesource.cloudmix.common.controller.FeatureController;
/**
* Simple interface to implement constraints checkers
* @param <T>
*/
public interface IFeatureConstraintChecker {
/**
* filters the given list of candidates and return the subset that meet the constraint enforced by this
* checker
* @param profileId 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
*/
List<FeatureController> applyConstraint(String profileId, List<FeatureController> someCandidates);
}