package fr.openwide.core.wicket.more.link.descriptor.parameter.validator;
import org.apache.wicket.model.IModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import com.google.common.base.Predicate;
/**
* @deprecated Use {@link fr.openwide.core.wicket.more.link.descriptor.builder.state.validator.IValidatorState#validator(fr.openwide.core.wicket.more.condition.Condition)} instead
*/
@Deprecated
public class PredicateLinkParameterValidator<T> implements ILinkParameterValidator {
private static final long serialVersionUID = 7015800524943994171L;
private final Predicate<T> predicate;
private final IModel<T> model;
public PredicateLinkParameterValidator(Predicate<T> predicate, IModel<T> model) {
this.predicate = predicate;
this.model = model;
}
@Override
public void validateSerialized(PageParameters parameters, LinkParameterValidationErrorCollector collector) {
// Nothing to do
}
@Override
public void validateModel(LinkParameterValidationErrorCollector collector) {
T object = model.getObject();
if (!predicate.apply(object)) {
collector.addError(String.format("Predicate '%s' did not apply to model object '%s'.", predicate, object));
}
}
@Override
public void detach() {
model.detach();
}
}