package fr.openwide.core.wicket.more.link.descriptor.builder.state.terminal; import org.apache.wicket.Page; import org.apache.wicket.model.IModel; import org.apache.wicket.request.resource.ResourceReference; /** * A state where the build can be terminated, returning the result of the build. */ public interface ILateTargetDefinitionTerminalState<TPageResult, TResourceResult, TImageResourceResult> { /** * @param pageClass The class of the page that the resulting link should point to. * @return The resulting link descriptor or link descriptor mapper for this builder, pointing to the given page. */ TPageResult page(Class<? extends Page> pageClass); /** * @param resourceReference The reference to the resource that the resulting link should point to. * @return The resulting link descriptor or link descriptor mapper for this builder, pointing to the given resource. */ TResourceResult resource(ResourceReference resourceReference); /** * @param resourceReference The reference to the resource that the resulting link should point to. * @return The resulting link descriptor or link descriptor mapper for this builder, pointing to the given resource. */ TImageResourceResult imageResource(ResourceReference resourceReference); /** * @param pageClassModel A model for the class of the page that the resulting link should point to. * @return The resulting link descriptor or link descriptor mapper for this builder, pointing to whatever page * is returned by the given model. */ TPageResult page(IModel<? extends Class<? extends Page>> pageClassModel); /** * @param resourceReferenceModel A model for the reference to the resource that the resulting link should point to. * @return The resulting link descriptor or link descriptor mapper for this builder, pointing to whatever resource * reference is returned by the given model. */ TResourceResult resource(IModel<? extends ResourceReference> resourceReferenceModel); /** * @param resourceReferenceModel A model for the reference to the resource that the resulting link should point to. * @return The resulting link descriptor or link descriptor mapper for this builder, pointing to whatever resource * reference is returned by the given model. */ TImageResourceResult imageResource(IModel<? extends ResourceReference> resourceReferenceModel); }