package fr.openwide.core.wicket.more.link.descriptor.builder.state.main; import fr.openwide.core.wicket.more.link.descriptor.builder.state.main.common.IMainState; import fr.openwide.core.wicket.more.link.descriptor.builder.state.main.generic.IGenericFourMappableParameterMainState; import fr.openwide.core.wicket.more.link.descriptor.builder.state.parameter.choice.nonechosen.IFourOrMoreMappableParameterNoneChosenChoiceState; import fr.openwide.core.wicket.more.link.descriptor.builder.state.parameter.chosen.common.IChosenParameterState; import fr.openwide.core.wicket.more.link.descriptor.builder.state.terminal.IBackwardCompatibleTerminalState; import fr.openwide.core.wicket.more.link.descriptor.mapper.IFourParameterLinkDescriptorMapper; /** * A builder state with four mappable parameters from which one may: * <ul> * <li>call any of the {@link IMainState} methods to map parameters and defined validators * <li>call {@link #pickFirst()} or {@link #pickSecond()} (etc.) to choose among mappable parameters and then use any * of the {@link IChosenParameterState} methods, allowing to reference these mappable parameters without them being * entirely defined (no model was provided yet). * <li>end the build with one of the {@link IBackwardCompatibleTerminalState} methods. * </ul> */ public interface IFourMappableParameterMainState < TParam1, TParam2, TParam3, TParam4, TEarlyTargetDefinitionLinkDescriptor, TLateTargetDefinitionPageLinkDescriptor, TLateTargetDefinitionResourceLinkDescriptor, TLateTargetDefinitionImageResourceLinkDescriptor > extends IGenericFourMappableParameterMainState < IFourMappableParameterMainState < TParam1, TParam2, TParam3, TParam4, TEarlyTargetDefinitionLinkDescriptor, TLateTargetDefinitionPageLinkDescriptor, TLateTargetDefinitionResourceLinkDescriptor, TLateTargetDefinitionImageResourceLinkDescriptor >, TParam1, TParam2, TParam3, TParam4, IFourParameterLinkDescriptorMapper < TEarlyTargetDefinitionLinkDescriptor, TParam1, TParam2, TParam3, TParam4 >, IFourParameterLinkDescriptorMapper < TLateTargetDefinitionPageLinkDescriptor, TParam1, TParam2, TParam3, TParam4 >, IFourParameterLinkDescriptorMapper < TLateTargetDefinitionResourceLinkDescriptor, TParam1, TParam2, TParam3, TParam4 >, IFourParameterLinkDescriptorMapper < TLateTargetDefinitionImageResourceLinkDescriptor, TParam1, TParam2, TParam3, TParam4 > >, IFourOrMoreMappableParameterNoneChosenChoiceState { }