@Override public LinksBuilder links() { return new DefaultLinksBuilder(); }
@Override public LinksBuilder page(String name, String path, Object... arguments) { return link(name, uriBuilder.page(path, arguments)); }
@Override public LinksBuilder page(String name, Class<? extends ProjectFunction> fn, ProjectEntity projectEntity, String path, Object... arguments) { return page(name, securityService.isProjectFunctionGranted(projectEntity, fn), path, arguments); }
@Override public LinksBuilder self(Object methodInvocation) { return link(Link.SELF, methodInvocation); }
@Override public LinksBuilder page(String name, Class<? extends GlobalFunction> fn, String path, Object... arguments) { return page(name, securityService.isGlobalFunctionGranted(fn), path, arguments); }
@Override public LinksBuilder update(Object methodInvocation, Class<? extends ProjectFunction> fn, int projectId) { return link(Link.UPDATE, methodInvocation, fn, projectId); }
@Override public LinksBuilder link(String name, Object methodInvocation, Class<? extends GlobalFunction> fn) { return link(name, methodInvocation, securityService.isGlobalFunctionGranted(fn)); }
@Override public LinksBuilder link(String name, Object methodInvocation) { return link(name, uri(methodInvocation)); }
@Override public LinksBuilder delete(Object methodInvocation, Class<? extends ProjectFunction> fn, int projectId) { return link(Link.DELETE, methodInvocation, fn, projectId); }
@Override public LinksBuilder link(String name, URI uri) { return link(Link.of(name, uri)); }
@Override public LinksBuilder entityURI(String name, ProjectEntity projectEntity, boolean allowed) { if (allowed) { return link(name, uriBuilder.getEntityURI(projectEntity)); } else { return this; } }
@Override public LinksBuilder page(String name, boolean allowed, String path, Object... arguments) { if (allowed) { return page(name, path, arguments); } else { return this; } }
@Override public LinksBuilder link(String name, Object methodInvocation, Class<? extends ProjectFunction> fn, int projectId) { return link(name, methodInvocation, securityService.isProjectFunctionGranted(projectId, fn)); }
@Override public LinksBuilder entityPage(String name, boolean allowed, ProjectEntity projectEntity) { if (allowed) { return link(name, uriBuilder.getEntityPage(projectEntity)); } else { return this; } }
@Override public LinksBuilder link(String name, Object methodInvocation, boolean test) { if (test) { return link(name, methodInvocation); } else { return this; } }