package fr.openwide.core.wicket.more.link.descriptor.mapper; import org.apache.wicket.model.IModel; import com.google.common.base.Function; import fr.openwide.core.wicket.more.link.descriptor.generator.ILinkGenerator; import fr.openwide.core.wicket.more.model.ReadOnlyModel; public class FunctionOneParameterLinkDescriptorMapper<R, T> extends AbstractOneParameterLinkDescriptorMapper<ILinkGenerator, R> { private static final long serialVersionUID = -1677511112381705789L; private final Function<? super R, T> function; private final ILinkDescriptorMapper<? extends ILinkGenerator, ? super IModel<T>> delegate; public FunctionOneParameterLinkDescriptorMapper(Function<? super R, T> function, ILinkDescriptorMapper<? extends ILinkGenerator, ? super IModel<T>> delegate) { super(); this.function = function; this.delegate = delegate; } @Override public ILinkGenerator map(IModel<R> model) { return delegate.map(ReadOnlyModel.of(model, function)); } @Override public void detach() { super.detach(); delegate.detach(); } }