package fr.openwide.core.wicket.more.console.common.util;
import java.io.Serializable;
import org.apache.wicket.Page;
import org.apache.wicket.model.IModel;
import org.apache.wicket.request.Url;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import fr.openwide.core.jpa.business.generic.model.GenericEntity;
import fr.openwide.core.jpa.business.generic.service.IGenericEntityService;
import fr.openwide.core.wicket.more.link.descriptor.ILinkDescriptor;
import fr.openwide.core.wicket.more.model.GenericEntityModel;
/**
* @deprecated Use the {@link ILinkDescriptor link} subsystem instead.
*/
@Deprecated
public final class LinkUtils {
/**
* @deprecated Use the {@link fr.openwide.core.wicket.more.link.descriptor.parameter.CommonParameters#ID} subsystem instead.
*/
@Deprecated
public static final String ID_PARAMETER = "id";
private LinkUtils() {
}
/**
* @deprecated Use the {@link ILinkDescriptor link} subsystem instead.
*/
@Deprecated
public static PageParameters getGenericEntityIdPageParameters(
IModel<? extends GenericEntity<?, ?>> genericEntityModel) {
PageParameters parameters;
if (genericEntityModel != null) {
parameters = getGenericEntityIdPageParameters(genericEntityModel.getObject());
} else {
parameters = new PageParameters();
}
return parameters;
}
/**
* @deprecated Use the {@link ILinkDescriptor link} subsystem instead.
*/
@Deprecated
public static PageParameters getGenericEntityIdPageParameters(GenericEntity<?, ?> genericEntity) {
PageParameters parameters = new PageParameters();
if (genericEntity != null) {
parameters.add(ID_PARAMETER, genericEntity.getId());
}
return parameters;
}
/**
* @deprecated Use the {@link ILinkDescriptor link} subsystem instead, in particular the {@link ILinkDescriptor#extract(PageParameters)} method.
*/
@Deprecated
public static <K extends Serializable & Comparable<K>, E extends GenericEntity<K, ?>> IModel<E> extractGenericEntityModelParameter(
IGenericEntityService<K, E> entityService, PageParameters parameters, Class<K> keyClass) {
return new GenericEntityModel<K, E>(extractGenericEntitySpecifiedParameter(entityService, parameters,
LinkUtils.ID_PARAMETER, keyClass));
}
/**
* @deprecated Use the {@link ILinkDescriptor link} subsystem instead, in particular the {@link ILinkDescriptor#extract(PageParameters)} method.
*/
@Deprecated
public static <K extends Serializable & Comparable<K>, E extends GenericEntity<K, ?>> E extractGenericEntitySpecifiedParameter(
IGenericEntityService<K, E> entityService, PageParameters parameters, String parameterKey, Class<K> keyClass) {
E entity;
try {
K entityId = parameters.get(parameterKey).to(keyClass);
entity = entityService.getById(entityId);
} catch (RuntimeException e) {
entity = null;
}
return entity;
}
/**
* @deprecated Use the {@link ILinkDescriptor link} subsystem instead, in particular the {@link ILinkDescriptor#fullUrl()} method.
*/
@Deprecated
public static String getUrl(Class<? extends Page> clazz, PageParameters parameters) {
return RequestCycle.get().getUrlRenderer()
.renderFullUrl(Url.parse(RequestCycle.get().urlFor(clazz, parameters).toString()));
}
}