KYLIN-1505 Combine guava filters with Predicates.and Signed-off-by: Yang Li <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/6d368cda Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/6d368cda Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/6d368cda Branch: refs/heads/master Commit: 6d368cda47147b0dd04e87cbcada9218687f9dab Parents: fb694a6 Author: Hao Chen <[email protected]> Authored: Sun Mar 20 15:50:26 2016 +0800 Committer: Yang Li <[email protected]> Committed: Sun Mar 20 15:50:26 2016 +0800 ---------------------------------------------------------------------- .../apache/kylin/rest/service/BasicService.java | 7 +++-- .../apache/kylin/rest/service/JobService.java | 29 +++++++++----------- 2 files changed, 17 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/6d368cda/server/src/main/java/org/apache/kylin/rest/service/BasicService.java ---------------------------------------------------------------------- diff --git a/server/src/main/java/org/apache/kylin/rest/service/BasicService.java b/server/src/main/java/org/apache/kylin/rest/service/BasicService.java index 5fea710..7696c59 100644 --- a/server/src/main/java/org/apache/kylin/rest/service/BasicService.java +++ b/server/src/main/java/org/apache/kylin/rest/service/BasicService.java @@ -45,6 +45,7 @@ import org.apache.kylin.storage.hybrid.HybridManager; import com.google.common.base.Function; import com.google.common.base.Predicate; +import com.google.common.base.Predicates; import com.google.common.collect.FluentIterable; import com.google.common.collect.Lists; @@ -122,7 +123,7 @@ public abstract class BasicService { public CubingJob apply(AbstractExecutable executable) { return (CubingJob) executable; } - }).filter(new Predicate<CubingJob>() { + }).filter(Predicates.and(new Predicate<CubingJob>() { @Override public boolean apply(CubingJob executable) { if (null == projectName || null == getProjectManager().getProject(projectName)) { @@ -132,12 +133,12 @@ public abstract class BasicService { return project.containsRealization(RealizationType.CUBE, CubingExecutableUtil.getCubeName(executable.getParams())); } } - }).filter(new Predicate<CubingJob>() { + }, new Predicate<CubingJob>() { @Override public boolean apply(CubingJob executable) { return statusList.contains(allOutputs.get(executable.getId()).getState()); } - })); + }))); return results; } http://git-wip-us.apache.org/repos/asf/kylin/blob/6d368cda/server/src/main/java/org/apache/kylin/rest/service/JobService.java ---------------------------------------------------------------------- diff --git a/server/src/main/java/org/apache/kylin/rest/service/JobService.java b/server/src/main/java/org/apache/kylin/rest/service/JobService.java index d0c29a4..1a35d0d 100644 --- a/server/src/main/java/org/apache/kylin/rest/service/JobService.java +++ b/server/src/main/java/org/apache/kylin/rest/service/JobService.java @@ -122,15 +122,7 @@ public class JobService extends BasicService { } private List<JobInstance> listCubeJobInstance(final String cubeName, final String projectName, List<JobStatusEnum> statusList, final long timeStartInMillis, final long timeEndInMillis) { - Set<ExecutableState> states; - if (statusList == null || statusList.isEmpty()) { - states = EnumSet.allOf(ExecutableState.class); - } else { - states = Sets.newHashSet(); - for (JobStatusEnum status : statusList) { - states.add(parseToExecutableState(status)); - } - } + Set<ExecutableState> states = convertStatusEnumToStates(statusList); final Map<String, Output> allOutputs = getExecutableManager().getAllOutputs(timeStartInMillis, timeEndInMillis); return Lists.newArrayList(FluentIterable.from(listAllCubingJobs(cubeName, projectName, states, timeStartInMillis, timeEndInMillis, allOutputs)).transform(new Function<CubingJob, JobInstance>() { @Override @@ -141,6 +133,17 @@ public class JobService extends BasicService { } private List<JobInstance> listCubeJobInstance(final String cubeName, final String projectName, List<JobStatusEnum> statusList) { + Set<ExecutableState> states = convertStatusEnumToStates(statusList); + final Map<String, Output> allOutputs = getExecutableManager().getAllOutputs(); + return Lists.newArrayList(FluentIterable.from(listAllCubingJobs(cubeName, projectName, states, allOutputs)).transform(new Function<CubingJob, JobInstance>() { + @Override + public JobInstance apply(CubingJob cubingJob) { + return parseToJobInstance(cubingJob, allOutputs); + } + })); + } + + private Set<ExecutableState> convertStatusEnumToStates(List<JobStatusEnum> statusList) { Set<ExecutableState> states; if (statusList == null || statusList.isEmpty()) { states = EnumSet.allOf(ExecutableState.class); @@ -150,13 +153,7 @@ public class JobService extends BasicService { states.add(parseToExecutableState(status)); } } - final Map<String, Output> allOutputs = getExecutableManager().getAllOutputs(); - return Lists.newArrayList(FluentIterable.from(listAllCubingJobs(cubeName, projectName, states, allOutputs)).transform(new Function<CubingJob, JobInstance>() { - @Override - public JobInstance apply(CubingJob cubingJob) { - return parseToJobInstance(cubingJob, allOutputs); - } - })); + return states; } private long getTimeStartInMillis(Calendar calendar, JobTimeFilterEnum timeFilter) {
