package com.thinkbiganalytics.metadata.jpa.support;

import com.google.common.collect.ImmutableList;
import com.querydsl.core.types.dsl.CaseBuilder;
import com.querydsl.core.types.dsl.StringExpression;
import com.thinkbiganalytics.metadata.api.jobrepo.job.BatchJobExecution;
import com.thinkbiganalytics.metadata.jpa.jobrepo.job.QJpaBatchJobExecution;

import java.util.List;

public class JobStatusDslQueryExpressionBuilder {

    private static QJpaBatchJobExecution jobExecution = QJpaBatchJobExecution.jpaBatchJobExecution;

    public static StringExpression jobState() {
        List<BatchJobExecution.JobStatus> runningStatus = ImmutableList.of(BatchJobExecution.JobStatus.STARTED, BatchJobExecution.JobStatus.STARTING);
        CaseBuilder.Cases<String, StringExpression> jobStateCase = new CaseBuilder().when(jobExecution.status.in(runningStatus)).then(BatchJobExecution.RUNNING_DISPLAY_STATUS);
        for (BatchJobExecution.JobStatus stat : BatchJobExecution.JobStatus.values()) {
            if (stat != BatchJobExecution.JobStatus.STARTING && stat != BatchJobExecution.JobStatus.STARTED && stat != BatchJobExecution.JobStatus.UNKNOWN) {
                jobStateCase.when(jobExecution.status.eq(stat)).then(stat.name());
            }
        }
        return jobStateCase.otherwise(BatchJobExecution.JobStatus.UNKNOWN.name());
    }
}

@@ -45,16 +45,682 @@
 upport;%0A
+/*-%0A * #%25L%0A * thinkbig-operational-metadata-jpa%0A * %25%25%0A * Copyright (C) 2017 ThinkBig Analytics%0A * %25%25%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A * #L%25%0A */
 %0Aimport 

add header to file