public static <T extends ProjectEntity> LinkDefinition<T> self(Function<T, Object> linkFn) { return link( Link.SELF, linkFn ); }
public static <T extends ProjectEntity> LinkDefinition<T> link(String name, BiFunction<T, ResourceContext, Object> linkFn) { return link( name, linkFn, (t, rc) -> true ); }
public static <T extends ProjectEntity> LinkDefinition<T> link(String name, Function<T, Object> linkFn) { return link( name, (t, resourceContext) -> linkFn.apply(t) ); }
public static <T extends ProjectEntity> LinkDefinition<T> link(String name, Function<T, Object> linkFn, BiPredicate<T, ResourceContext> checkFn) { return link( name, (t, resourceContext) -> linkFn.apply(t), checkFn ); }
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) ); }
@Override public List<LinkDefinition<Branch>> getLinkDefinitions() { return Collections.singletonList( LinkDefinitions.link( "_download", branch -> MvcUriComponentsBuilder.on(SVNController.class).download( branch.getId(), "" ), (branch, rc) -> rc.isProjectFunctionGranted(branch, ProjectConfig.class) && svnService.getSVNRepository(branch).isPresent() ) ); }
@Override public List<LinkDefinition<Build>> getLinkDefinitions() { return Arrays.asList( LinkDefinitions.link( "_changeLog", build -> { BuildDiffRequest request = new BuildDiffRequest(); request.setFrom(build.getId()); return MvcUriComponentsBuilder.on(SVNController.class).changeLog(request); }, (build, rc) -> rc.isProjectFunctionGranted(build, ProjectView.class) && svnService.getSVNRepository(build.getBranch()).isPresent() ), LinkDefinitions.page( "_changeLogPage", (build, resourceContext) -> resourceContext.isProjectFunctionGranted(build, ProjectView.class) && svnService.getSVNRepository(build.getBranch()).isPresent(), "extension/svn/changelog" ) ); }