package fr.openwide.core.wicket.more.link.descriptor.builder.state.main.generic; import fr.openwide.core.wicket.more.link.descriptor.builder.state.main.IThreeMappableParameterMainState; import fr.openwide.core.wicket.more.link.descriptor.builder.state.main.common.IMainState; import fr.openwide.core.wicket.more.link.descriptor.builder.state.parameter.choice.nonechosen.IThreeOrMoreMappableParameterNoneChosenChoiceState; import fr.openwide.core.wicket.more.link.descriptor.builder.state.parameter.chosen.IThreeMappableParameterOneChosenParameterState; import fr.openwide.core.wicket.more.link.descriptor.builder.state.terminal.IBackwardCompatibleTerminalState; /** * This interface only exists so that we don't have to repeat again and again what some of the generic type parameters * are ({@link TSelf}, {@link TLateTargetDefinitionPageResult}, {@link TLateTargetDefinitionResourceResult}, etc.) * in {@link IThreeMappableParameterMainState}, because it would be even more unreadable than it is now. */ public interface IGenericThreeMappableParameterMainState < TSelf extends IMainState<TSelf>, TParam1, TParam2, TParam3, TEarlyTargetDefinitionResult, TLateTargetDefinitionPageResult, TLateTargetDefinitionResourceResult, TLateTargetDefinitionImageResourceResult > extends IMainState<TSelf>, IThreeOrMoreMappableParameterNoneChosenChoiceState, IBackwardCompatibleTerminalState < TEarlyTargetDefinitionResult, TLateTargetDefinitionPageResult, TLateTargetDefinitionResourceResult, TLateTargetDefinitionImageResourceResult > { @Override IThreeMappableParameterOneChosenParameterState< TSelf, TParam1, TParam2, TParam3, TParam1, TLateTargetDefinitionPageResult, TLateTargetDefinitionResourceResult, TLateTargetDefinitionImageResourceResult > pickFirst(); @Override IThreeMappableParameterOneChosenParameterState< TSelf, TParam1, TParam2, TParam3, TParam2, TLateTargetDefinitionPageResult, TLateTargetDefinitionResourceResult, TLateTargetDefinitionImageResourceResult > pickSecond(); @Override IThreeMappableParameterOneChosenParameterState< TSelf, TParam1, TParam2, TParam3, TParam3, TLateTargetDefinitionPageResult, TLateTargetDefinitionResourceResult, TLateTargetDefinitionImageResourceResult > pickThird(); }