package org.jboss.resteasy.links; import java.util.Map; /** * Represents a facade for an entity which should still receive links for this entity even * though this entity's instance is not available. This is useful for Collections of an entity's * children (Order.comments) where the parent entity (Order) is not returned as part of the collection, * but should still receive any links for the entity of type T (Comment) for whom we do not have any * instance (links for "add" and "list" for example). * @author Stéphane Épardaud <stef@epardaud.fr> * * @param <T> the type of entity that this facade should receive links for */ public interface ResourceFacade<T> { /** * Returns the type of entity that this facade should receive links for. If we represent * a list of Comment entities, then that would be the type to return. */ Class<T> facadeFor(); /** * <p> * Returns a map of path parameters to use to build any path to this facade's type's links. If there * are too many path parameter for a link, the extra ones will be ignored, but if there are not enough * path parameters the link will be skipped. * </p> * <p> * For example, when scanning a facade for a list of order comments for an order with ID "foo", * you should return a map for * {orderId => "foo"}, which will get you links for "/order/{orderId}/comments" ("list" and "add") * but not for "/order/{orderId}/comment/{commentId}" since those need actual Comment instances ("self" and * "delete"). * </p> */ Map<String, ? extends Object> pathParameters(); }