public Dictionary()

in jbatch/src/main/java/org/apache/batchee/container/services/persistence/jdbc/Dictionary.java [154:297]


    public Dictionary(final String checkpointTable, final String jobInstanceTable, final String jobExecutionTable,
                      final String stepExecutionTable, final Database database) {
        this.checkpointTable = checkpointTable;
        this.jobInstanceTable = jobInstanceTable;
        this.jobExecutionTable = jobExecutionTable;
        this.stepExecutionTable = stepExecutionTable;

        { // ensure to be able to build jointures prebuilding columns
            checkpointColumns = columns(database, SQL.CHECKPOINT_COLUMNS);
            jobExecutionColumns = columns(database, SQL.JOB_EXECUTION_COLUMNS);
            jobInstanceColumns = columns(database, SQL.JOB_INSTANCE_COLUMNS);
            stepExecutionColumns = columns(database, SQL.STEP_EXECUTION_COLUMNS);
        }

        { // checkpoint
            this.createCheckpointTable = String.format(SQL.CREATE_CHECKPOINT, checkpointTable,
                                                        checkpointColumns[0], database.bigint(), database.autoIncrementId(),
                                                        checkpointColumns[1], database.blob(),
                                                        checkpointColumns[2], database.varchar255(),
                                                        checkpointColumns[3], database.varchar20(),
                                                        checkpointColumns[4], database.bigint());
            this.insertCheckpoint = String.format(SQL.INSERT_CHECKPOINT, checkpointTable, checkpointColumns[1], checkpointColumns[2], checkpointColumns[3], checkpointColumns[4]);
            this.selectCheckpoint = String.format(SQL.SELECT_CHECKPOINT, checkpointColumns[1], checkpointTable, checkpointColumns[4], checkpointColumns[3], checkpointColumns[2]);
            this.updateCheckpoint = String.format(SQL.UPDATE_CHECKPOINT, checkpointTable, checkpointColumns[1], checkpointColumns[4], checkpointColumns[3], checkpointColumns[2]);
            this.deleteCheckpoint = String.format(SQL.DELETE_CHECKPOINT, checkpointTable, checkpointColumns[4]);
            // String DELETE_CHECKPOINT_UNTIL = DELETE + "%s WHERE %s IN (" + SELECT + " DISTINCT t1.%s FROM %s t1 WHERE (SELECT MAX(t0.%s) FROM %s t0 WHERE t0.%s = t1.%s) < ?)";
            this.deleteCheckpointUntil = String.format(SQL.DELETE_CHECKPOINT_UNTIL, checkpointTable, checkpointColumns[0], checkpointColumns[0], checkpointTable,
                jobExecutionColumns[3], jobExecutionTable, checkpointColumns[4], jobExecutionColumns[8]);
        }

        { // jobInstance
            this.createJobInstanceTable = String.format(SQL.CREATE_JOB_INSTANCE, jobInstanceTable,
                                                        jobInstanceColumns[0], database.bigint(), database.autoIncrementId(),
                                                        jobInstanceColumns[1], database.varchar20(),
                                                        jobInstanceColumns[2], database.varchar255(),
                                                        jobInstanceColumns[3], database.varchar255(),
                                                        jobInstanceColumns[4], database.blob(),
                                                        jobInstanceColumns[5], database.bigint(),
                                                        jobInstanceColumns[6], database.varchar255(),
                                                        jobInstanceColumns[7], database.varchar255(),
                                                        jobInstanceColumns[0]);
            this.countJobInstanceByName = String.format(SQL.JOB_INSTANCE_COUNT_FROM_NAME, jobInstanceColumns[0], jobInstanceTable, jobInstanceColumns[3]);
            this.findJobInstance = String.format(SQL.JOB_INSTANCE_BY_ID, jobInstanceTable, jobInstanceColumns[0]);
            this.updateJobInstanceStatus = String.format(SQL.JOB_INSTANCE_UPDATE_STATUS, jobInstanceTable, jobInstanceColumns[1], jobInstanceColumns[2], jobInstanceColumns[5],
                    jobInstanceColumns[6], jobInstanceColumns[7], jobInstanceColumns[3], jobInstanceColumns[0]);
            this.findJoBInstanceIds = String.format(SQL.JOB_INSTANCE_IDS, jobInstanceColumns[0], jobInstanceTable, jobInstanceColumns[3], jobInstanceColumns[0]);
            this.findJobInstanceIdsByName = String.format(SQL.JOB_INSTANCE_IDS_FROM_NAME, jobInstanceColumns[0], jobInstanceTable, jobInstanceColumns[3], jobInstanceColumns[0]);
            this.findJobNames = String.format(SQL.JOB_NAMES, jobInstanceColumns[3], jobInstanceTable, jobInstanceColumns[3], PartitionedStepBuilder.JOB_ID_SEPARATOR + "%");
            this.findExternalJobInstances = String.format(SQL.EXTERNAL_JOB_INSTANCE, jobInstanceColumns[0], jobInstanceColumns[3], jobInstanceTable,
                    jobInstanceColumns[3], PartitionedStepBuilder.JOB_ID_SEPARATOR + "%");
            this.createJobInstance = String.format(SQL.JOB_INSTANCE_CREATE, jobInstanceTable, jobInstanceColumns[3]);
            this.createJobInstanceWithJobXml = String.format(SQL.JOB_INSTANCE_CREATE_WITH_JOB_XML, jobInstanceTable, jobInstanceColumns[3], jobInstanceColumns[4]);
            this.deleteJobInstance = String.format(SQL.DELETE_JOB_INSTANCE, jobInstanceTable, jobInstanceColumns[0]);
            this.deleteJobInstanceUntil = String.format(SQL.DELETE_JOB_INSTANCE_UNTIL, jobInstanceTable, jobInstanceColumns[0], jobInstanceColumns[0], jobInstanceTable,
                jobExecutionColumns[3], jobExecutionTable, jobExecutionColumns[8], jobInstanceColumns[0]);
        }

        { // jobExecution
            this.createJobExecutionTable = String.format(SQL.CREATE_JOB_EXECUTION, jobExecutionTable,
                                                            jobExecutionColumns[0], database.bigint(), database.autoIncrementId(),
                                                            jobExecutionColumns[1], database.varchar20(),
                                                            jobExecutionColumns[2], database.timestamp(),
                                                            jobExecutionColumns[3], database.timestamp(),
                                                            jobExecutionColumns[4], database.varchar255(),
                                                            jobExecutionColumns[5], database.blob(),
                                                            jobExecutionColumns[6], database.timestamp(),
                                                            jobExecutionColumns[7], database.timestamp(),
                                                            jobExecutionColumns[8], database.bigint());
            this.findJobExecutionTimestamps = String.format(SQL.JOB_EXECUTION_TIMESTAMPS, jobExecutionColumns[2], jobExecutionColumns[3], jobExecutionColumns[7],
                    jobExecutionColumns[6], jobExecutionTable, jobExecutionColumns[0]);
            this.findJobExecutionBatchStatus = String.format(SQL.JOB_EXECUTION_BATCH_STATUS, jobExecutionColumns[1], jobExecutionTable, jobExecutionColumns[0]);
            this.findJobExecutionExitStatus = String.format(SQL.JOB_EXECUTION_EXIT_STATUS, jobExecutionColumns[4], jobExecutionTable, jobExecutionColumns[0]);
            this.findJobExecutionJobProperties = String.format(SQL.JOB_EXECUTION_PROPERTIES, jobExecutionColumns[5], jobExecutionTable, jobExecutionColumns[0]);
            this.updateJobExecution = String.format(SQL.JOB_EXECUTION_UPDATE, jobExecutionTable, jobExecutionColumns[1], jobExecutionColumns[7], jobExecutionColumns[0]);
            this.setJobExecutionFinalData = String.format(SQL.JOB_EXECUTION_SET_FINAL_DATA, jobExecutionTable, jobExecutionColumns[1], jobExecutionColumns[4],
                    jobExecutionColumns[3], jobExecutionColumns[7], jobExecutionColumns[0]);
            this.updateStartedJobExecution = String.format(SQL.JOB_EXECUTION_START, jobExecutionTable, jobExecutionColumns[1], jobExecutionColumns[6],
                    jobExecutionColumns[7], jobExecutionColumns[0]);
            this.findJobExecutionById = String.format(SQL.JOB_EXECUTION_FIND_BY_ID, jobExecutionColumns[2], jobExecutionColumns[6], jobExecutionColumns[3],
                    jobExecutionColumns[7], jobExecutionColumns[5], jobExecutionColumns[8], jobExecutionColumns[1], jobExecutionColumns[4], jobInstanceColumns[3],
                    jobExecutionTable, jobInstanceTable, jobExecutionColumns[8], jobInstanceColumns[0], jobExecutionColumns[0]);
            this.findRunningJobExecutions = String.format(SQL.JOB_EXECUTION_RUNNING, jobExecutionColumns[0], jobExecutionTable, jobInstanceTable, jobExecutionColumns[8],
                    jobInstanceColumns[0], jobExecutionColumns[1], jobInstanceColumns[3]);
            this.findJobExecutionByInstance = String.format(SQL.JOB_EXECUTION_FROM_INSTANCE, jobExecutionColumns[0], jobExecutionColumns[2], jobExecutionColumns[6],
                jobExecutionColumns[3], jobExecutionColumns[7], jobExecutionColumns[5], jobExecutionColumns[1], jobExecutionColumns[4], jobInstanceColumns[3],
                jobExecutionTable, jobInstanceTable, jobExecutionColumns[8], jobInstanceColumns[0], jobInstanceColumns[0]);
            this.findJobStatus = String.format(SQL.JOB_INSTANCE_STATUS, jobInstanceTable, jobExecutionTable, jobInstanceColumns[0], jobExecutionColumns[8],
                    jobExecutionColumns[0]);
            this.findJobInstanceFromJobExecution = String.format(SQL.JOB_INSTANCE_FROM_EXECUTION, jobExecutionColumns[8], jobExecutionTable, jobExecutionColumns[0]);
            this.createJobExecution = String.format(SQL.JOB_EXECUTION_CREATE, jobExecutionTable, jobExecutionColumns[8], jobExecutionColumns[2], jobExecutionColumns[7],
                    jobExecutionColumns[1], jobExecutionColumns[5]);
            this.findMostRecentJobExecution = String.format(SQL.JOB_EXECUTION_MOST_RECENT, jobExecutionColumns[0], jobExecutionTable,
                    jobExecutionColumns[8], jobExecutionColumns[2]);
            this.deleteJobExecution = String.format(SQL.DELETE_JOB_EXECUTION, jobExecutionTable, jobExecutionColumns[8]);
            this.deleteJobExecutionUntil = String.format(SQL.DELETE_JOB_EXECUTION_UNTIL, jobExecutionTable, jobExecutionColumns[0], jobExecutionColumns[0],
                jobExecutionTable, jobExecutionColumns[3]);
        }

        { // step execution
            this.createStepExecutionTable = String.format(SQL.CREATE_STEP_EXECUTION, stepExecutionTable,
                                                            stepExecutionColumns[0], database.bigint(), database.autoIncrementId(),
                                                            stepExecutionColumns[1], database.varchar20(),
                                                            stepExecutionColumns[2], database.bigint(),
                                                            stepExecutionColumns[3], database.timestamp(),
                                                            stepExecutionColumns[4], database.varchar255(),
                                                            stepExecutionColumns[5], database.bigint(),
                                                            stepExecutionColumns[6], database.bigint(),
                                                            stepExecutionColumns[7], database.integer(),
                                                            stepExecutionColumns[8], database.blob(),
                                                            stepExecutionColumns[9], database.bigint(),
                                                            stepExecutionColumns[10], database.bigint(),
                                                            stepExecutionColumns[11], database.bigint(),
                                                            stepExecutionColumns[12], database.bigint(),
                                                            stepExecutionColumns[13], database.integer(),
                                                            stepExecutionColumns[14], database.timestamp(),
                                                            stepExecutionColumns[15], database.varchar255(),
                                                            stepExecutionColumns[16], database.bigint(),
                                                            stepExecutionColumns[17], database.bigint(),
                                                            stepExecutionColumns[18], database.bigint());
            this.finStepExecutionFromJobExecution = String.format(SQL.STEPS_FROM_EXECUTION, stepExecutionTable, stepExecutionColumns[18]);
            this.findStepExecutionFromId = String.format(SQL.STEP_FROM_ID, stepExecutionTable, stepExecutionColumns[0]);
            this.createStepExecution = String.format(SQL.STEP_EXECUTION_CREATE, stepExecutionTable, stepExecutionColumns[18], stepExecutionColumns[1],
                    stepExecutionColumns[4], stepExecutionColumns[15],
                stepExecutionColumns[10], stepExecutionColumns[16], stepExecutionColumns[2], stepExecutionColumns[12], stepExecutionColumns[11],
                    stepExecutionColumns[9], stepExecutionColumns[5],
                stepExecutionColumns[17], stepExecutionColumns[14], stepExecutionColumns[3], stepExecutionColumns[8]);
            this.updateStepExecutionStatus = String.format(SQL.STEP_EXECUTION_UPDATE_STATUS, stepExecutionTable, stepExecutionColumns[8], stepExecutionColumns[1],
                    stepExecutionColumns[4], stepExecutionColumns[6],
                stepExecutionColumns[7], stepExecutionColumns[13], stepExecutionColumns[0]);
            this.updateStepExecution = String.format(SQL.STEP_EXECUTION_UPDATE, stepExecutionTable, stepExecutionColumns[18], stepExecutionColumns[1],
                    stepExecutionColumns[4], stepExecutionColumns[15],
                stepExecutionColumns[10], stepExecutionColumns[16], stepExecutionColumns[2], stepExecutionColumns[12], stepExecutionColumns[11],
                    stepExecutionColumns[9], stepExecutionColumns[5],
                stepExecutionColumns[17], stepExecutionColumns[14], stepExecutionColumns[3], stepExecutionColumns[8], stepExecutionColumns[0]);
            this.findStepExecutionByJobInstanceAndStepName = String.format(SQL.STEP_EXECUTION_BY_INSTANCE_AND_STEP, stepExecutionColumns[0],
                    stepExecutionColumns[13], stepExecutionColumns[1],
                stepExecutionColumns[4], stepExecutionColumns[8], stepExecutionColumns[6], stepExecutionColumns[7], stepExecutionColumns[18], jobExecutionTable, stepExecutionTable,
                jobExecutionColumns[0], stepExecutionColumns[18], jobExecutionColumns[8], stepExecutionColumns[15]);
            this.deleteStepExecution = String.format(SQL.DELETE_STEP_EXECUTION, jobExecutionTable, stepExecutionTable, jobExecutionColumns[0],
                    stepExecutionColumns[18], jobExecutionColumns[8]);
            this.deleteStepExecutionUntil = String.format(SQL.DELETE_STEP_EXECUTION_UNTIL, stepExecutionTable, stepExecutionColumns[0], stepExecutionColumns[0],
                stepExecutionTable, jobExecutionTable, stepExecutionColumns[18], jobExecutionColumns[0], jobExecutionColumns[3]);
        }
    }