package fr.openwide.maven.artifact.notifier.web.application.navigation.link; import org.apache.wicket.Page; import org.apache.wicket.model.IModel; import fr.openwide.core.wicket.more.link.descriptor.IPageLinkDescriptor; import fr.openwide.core.wicket.more.link.descriptor.builder.LinkDescriptorBuilder; import fr.openwide.core.wicket.more.link.descriptor.parameter.CommonParameters; import fr.openwide.core.wicket.more.link.factory.AbstractLinkFactory; import fr.openwide.maven.artifact.notifier.core.business.artifact.model.Artifact; import fr.openwide.maven.artifact.notifier.core.business.project.model.Project; import fr.openwide.maven.artifact.notifier.web.application.navigation.link.parameter.mapping.ArtifactLinkParameterMappingEntry; public final class LinkFactory extends AbstractLinkFactory { private static final LinkFactory INSTANCE = new LinkFactory(); private LinkFactory() { } public static LinkFactory get() { return INSTANCE; } public IPageLinkDescriptor getAssortedArtifactPageLinkDescriptor(Class<? extends Page> pageClass, IModel<Artifact> artifactModel) { return new LinkDescriptorBuilder().page(pageClass) .map(new ArtifactLinkParameterMappingEntry(artifactModel)).mandatory() .build(); } public IPageLinkDescriptor getAssortedProjectPageLinkDescriptor(Class<? extends Page> pageClass, IModel<Project> projectModel) { return new LinkDescriptorBuilder().page(pageClass) .map(CommonParameters.NATURAL_ID, projectModel, Project.class).mandatory() .build(); } }