package fr.openwide.core.wicket.more.link.descriptor.builder.state.main; import java.util.Collection; import org.springframework.core.convert.TypeDescriptor; import com.google.common.base.Supplier; import fr.openwide.core.wicket.more.link.descriptor.builder.state.main.common.IMainState; import fr.openwide.core.wicket.more.link.descriptor.builder.state.main.common.IMappableParameterDeclarationState; import fr.openwide.core.wicket.more.link.descriptor.builder.state.terminal.IBackwardCompatibleTerminalState; import fr.openwide.core.wicket.more.link.descriptor.builder.state.terminal.ILateTargetDefinitionTerminalState; import fr.openwide.core.wicket.more.link.descriptor.mapper.IOneParameterLinkDescriptorMapper; import fr.openwide.core.wicket.more.link.descriptor.mapper.ITwoParameterLinkDescriptorMapper; /** * An initial builder state from which one may: * <ul> * <li>build a LinkDescriptor directly, by calling any of the {@link IMainState} methods and then any of the * {@link ILateTargetDefinitionTerminalState} method. * <li>start building a LinkDescriptorMapper (for example {@link IOneParameterLinkDescriptorMapper} or * {@link ITwoParameterLinkDescriptorMapper}), by calling the {@link #model(Class)} method. * </ul> */ public interface INoMappableParameterMainState < TEarlyTargetDefinitionLinkDescriptor, TLateTargetDefinitionPageLinkDescriptor, TLateTargetDefinitionResourceLinkDescriptor, TLateTargetDefinitionImageResourceLinkDescriptor > extends IMainState < INoMappableParameterMainState < TEarlyTargetDefinitionLinkDescriptor, TLateTargetDefinitionPageLinkDescriptor, TLateTargetDefinitionResourceLinkDescriptor, TLateTargetDefinitionImageResourceLinkDescriptor > >, IMappableParameterDeclarationState, IBackwardCompatibleTerminalState < TEarlyTargetDefinitionLinkDescriptor, TLateTargetDefinitionPageLinkDescriptor, TLateTargetDefinitionResourceLinkDescriptor, TLateTargetDefinitionImageResourceLinkDescriptor > { @Override <TParam1> IOneMappableParameterMainState< TParam1, TEarlyTargetDefinitionLinkDescriptor, TLateTargetDefinitionPageLinkDescriptor, TLateTargetDefinitionResourceLinkDescriptor, TLateTargetDefinitionImageResourceLinkDescriptor > model(Class<TParam1> clazz); @Override <TParam1 extends Collection<TElement>, TElement> IOneMappableParameterMainState< TParam1, TEarlyTargetDefinitionLinkDescriptor, TLateTargetDefinitionPageLinkDescriptor, TLateTargetDefinitionResourceLinkDescriptor, TLateTargetDefinitionImageResourceLinkDescriptor > model(Class<? super TParam1> clazz, Class<TElement> elementType); @Override <TParam1 extends Collection<?>> IOneMappableParameterMainState< TParam1, TEarlyTargetDefinitionLinkDescriptor, TLateTargetDefinitionPageLinkDescriptor, TLateTargetDefinitionResourceLinkDescriptor, TLateTargetDefinitionImageResourceLinkDescriptor > model(Class<? super TParam1> clazz, TypeDescriptor elementTypeDescriptor); @Override <TParam1 extends Collection<?>> IOneMappableParameterMainState< TParam1, TEarlyTargetDefinitionLinkDescriptor, TLateTargetDefinitionPageLinkDescriptor, TLateTargetDefinitionResourceLinkDescriptor, TLateTargetDefinitionImageResourceLinkDescriptor > model(Class<? super TParam1> clazz, TypeDescriptor elementTypeDescriptor, Supplier<? extends TParam1> emptyCollectionSupplier); }