@Override public LinksBuilder link(String name, Object methodInvocation, boolean test) { if (test) { return link(name, methodInvocation); } else { return this; } }
@Override protected Iterable<LinkDefinition<T>> getLinkDefinitions() { return contributor.getLinkDefinitions(); } };
@Override public List<Link> links(T resource, ResourceContext resourceContext) { LinksBuilder linksBuilder = resourceContext.links(); for (LinkDefinition<T> linkDefinition : linkDefinitions.get()) { if (linkDefinition.getCheckFn().test(resource, resourceContext)) { linksBuilder = linkDefinition.addLink(linksBuilder, resource, resourceContext); } } return linksBuilder.build(); }
public static <T extends ProjectEntity, P extends ProjectFunction> LinkDefinition<T> page(String name, Class<P> projectFn, String path, Object... arguments) { return page( name, withProjectFn(projectFn), path, arguments ); }
public static <T extends ProjectEntity, P extends ProjectFunction> LinkDefinition<T> delete(Function<T, Object> linkFn, Class<P> fn) { return link( Link.DELETE, linkFn, withProjectFn(fn) ); }
public static <T extends ProjectEntity> LinkDefinition<T> link(String name, BiFunction<T, ResourceContext, Object> linkFn) { return link( name, linkFn, (t, rc) -> true ); }
public ResourceObjectMapper resourceObjectMapper(List<ResourceModule> resourceModules, ResourceContext resourceContext) { ObjectMapper mapper = this.objectMapper.copy(); // Registers as JSON modules for (ResourceModule resourceModule : resourceModules) { mapper = mapper.registerModule(new JSONResourceModule(resourceModule, resourceContext)); } // OK return new DefaultResourceObjectMapper(mapper, resourceContext); }
@Override public BeanSerializerBase withObjectIdWriter(ObjectIdWriter objectIdWriter) { return new ResourceDecoratorSerializer<>( this, objectIdWriter, resourceContext, resourceDecorator ); }
public static <T> LinkDefinition<T> link(String name, BiFunction<T, ResourceContext, Object> linkFn, BiPredicate<T, ResourceContext> checkFn) { return new SimpleLinkDefinition<>( name, linkFn, checkFn ); }
public L with(String name, URI uri, boolean authorized) { if (authorized) { return with(name, uri); } else { //noinspection unchecked return (L) this; } }
public static <T extends ProjectEntity> LinkDefinition<T> page(String name, BiPredicate<T, ResourceContext> checkFn, BiFunction<T, ResourceContext, String> pathFn) { return new PagePathLinkDefinition<>( name, pathFn, checkFn ); } }
@Override public LinksBuilder page(String name, boolean allowed, String path, Object... arguments) { if (allowed) { return page(name, path, arguments); } else { return this; } }
/** * Creation of a link to the entity's page */ public static <T extends ProjectEntity> LinkDefinition<T> page() { return new EntityPageLinkDefinition<>( (e, rc) -> true ); }
@Override public LinksBuilder links() { return new DefaultLinksBuilder(); }
public static <T extends ProjectEntity> LinkDefinition<T> self(Function<T, Object> linkFn) { return link( Link.SELF, linkFn ); }
@Override public LinksBuilder self(Object methodInvocation) { return link(Link.SELF, methodInvocation); }
@Override protected BeanSerializerBase withIgnorals(Set<String> toIgnore) { return new ResourceDecoratorSerializer<>( this, toIgnore, resourceContext, resourceDecorator ); }