package fr.openwide.core.wicket.more.link.descriptor.builder.state.terminal; import fr.openwide.core.wicket.more.link.descriptor.builder.LinkDescriptorBuilder; /** * A terminal state that will work for clients using either the deprecated early target definition * ({@link IEarlyTargetDefinitionTerminalState}) or the recommended late target definition * ({@link ILateTargetDefinitionTerminalState}). * <p>Note to maintainers: in an ideal world, only the {@link TEarlyTargetDefinitionResult} parameter would be needed. * We need to add the three others, though, so that when a client uses the early target definition API, we make the late * target definition API return Void instead of link descriptors. This effectively prevents users from mixing both APIs, * though in an inelegant way. * @see {@link LinkDescriptorBuilder} for discussions about late and early target definition APIs. */ @SuppressWarnings("deprecation") public interface IBackwardCompatibleTerminalState < TEarlyTargetDefinitionResult, TLateTargetDefinitionPageResult, TLateTargetDefinitionResourceResult, TLateTargetDefinitionImageResourceResult > extends IEarlyTargetDefinitionTerminalState<TEarlyTargetDefinitionResult>, ILateTargetDefinitionTerminalState < TLateTargetDefinitionPageResult, TLateTargetDefinitionResourceResult, TLateTargetDefinitionImageResourceResult > { }