com.sos.scheduler.history.db.SchedulerOrderStepHistoryDBLayer.java Source code

Java tutorial

Introduction

Here is the source code for com.sos.scheduler.history.db.SchedulerOrderStepHistoryDBLayer.java

Source

/**
 * Copyright (C) 2014 BigLoupe http://bigloupe.github.io/SoS-JobScheduler/
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License
 */
/********************************************************* begin of preamble
**
** Copyright (C) 2003-2012 Software- und Organisations-Service GmbH. 
** All rights reserved.
**
** This file may be used under the terms of either the 
**
**   GNU General Public License version 2.0 (GPL)
**
**   as published by the Free Software Foundation
**   http://www.gnu.org/licenses/gpl-2.0.txt and appearing in the file
**   LICENSE.GPL included in the packaging of this file. 
**
** or the
**  
**   Agreement for Purchase and Licensing
**
**   as offered by Software- und Organisations-Service GmbH
**   in the respective terms of supply that ship with this file.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
** THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
** BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
** POSSIBILITY OF SUCH DAMAGE.
********************************************************** end of preamble*/
package com.sos.scheduler.history.db;

import java.io.File;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

import org.hibernate.Query;

import com.sos.hibernate.layer.SOSHibernateDBLayer;
import com.sos.scheduler.history.SchedulerOrderHistoryFilter;
import com.sos.scheduler.history.SchedulerOrderStepHistoryFilter;

/**
*  
* \class SchedulerHistoryDBLayer
* \brief SchedulerHistoryDBLayer - 
* 
* \details
*
* \section SchedulerOrderStepHistoryDBLayer.java_intro_sec Introduction
*
* \section SchedulerOrderStepHistoryDBLayer.java_samples Some Samples
*
* \code
*   .... code goes here ...
* \endcode
*
* <p style="text-align:center">
* <br />---------------------------------------------------------------------------
* <br /> APL/Software GmbH - Berlin
* <br />##### generated by ClaviusXPress (http://www.sos-berlin.com) #########
* <br />---------------------------------------------------------------------------
* </p>
* \author Uwe Risse
* \version 27.09.2011
* \see reference
*
* Created on 27.09.2011 14:40:18
 */

public class SchedulerOrderStepHistoryDBLayer extends SOSHibernateDBLayer {

    @SuppressWarnings("unused")
    private final String conClassName = "SchedulerOrderStepHistoryDBLayer";
    protected SchedulerOrderStepHistoryFilter filter = null;

    public SchedulerOrderStepHistoryDBLayer(File configurationFile) {
        super();
        this.setConfigurationFile(configurationFile);

    }

    public SchedulerOrderStepHistoryDBItem get(SchedulerOrderStepHistoryCompoundKey id) {
        return (SchedulerOrderStepHistoryDBItem) this.getSession().get(SchedulerOrderStepHistoryDBItem.class, id);
    }

    protected String getWhereFromTo() {
        String where = "";
        String and = "";

        if (filter.getExecutedFrom() != null) {
            where += and + " startTime>= :startTimeFrom";
            and = " and ";
        }

        if (filter.getExecutedTo() != null) {
            where += and + " startTime <= :startTimeTo ";
            and = " and ";
        }
        if (where.trim().equals("")) {

        } else {
            where = "where " + where;
        }
        return where;

    }

    protected String getWhere() {
        String where = "";
        String and = "";

        if (filter.getStartTime() != null && !filter.getStartTime().equals("")) {
            where += and + " startTime>= :startTime";
            and = " and ";
        }

        if (filter.getEndTime() != null && !filter.getEndTime().equals("")) {
            where += and + " endTime <= :endTime ";
            and = " and ";
        }
        if (where.trim().equals("")) {

        } else {
            where = "where " + where;
        }
        return where;

    }

    public int deleteFromTo() {

        if (session == null) {
            beginTransaction();
        }

        String hql = "delete from SchedulerOrderStepHistoryDBItem " + getWhereFromTo();

        Query query = session.createQuery(hql);
        query.setTimestamp("startTimeFrom", filter.getExecutedFrom());
        query.setTimestamp("startTimeTo", filter.getExecutedTo());

        int row = query.executeUpdate();

        return row;
    }

    public void deleteInterval(int interval) {
        GregorianCalendar now = new GregorianCalendar();
        now.add(GregorianCalendar.DAY_OF_YEAR, -interval);
        this.filter.setExecutedTo(new Date());
        this.filter.setExecutedFrom(now.getTime());
        this.deleteFromTo();
    }

    public List<SchedulerOrderStepHistoryDBItem> getSchedulerOrderStepHistoryListFromTo(int limit) {
        initSession();

        Query query = session.createQuery("from SchedulerOrderStepHistoryDBItem " + getWhereFromTo()
                + filter.getOrderCriteria() + filter.getSortMode());

        if (filter.getExecutedFrom() != null && !filter.getExecutedFrom().equals("")) {
            query.setTimestamp("startTimeFrom", filter.getExecutedFrom());
        }
        if (filter.getExecutedTo() != null && !filter.getExecutedTo().equals("")) {
            query.setTimestamp("startTimeTo", filter.getExecutedTo());
        }

        if (limit > 0) {
            query.setMaxResults(limit);
        }

        List<SchedulerOrderStepHistoryDBItem> schedulerHistoryList = query.list();
        return schedulerHistoryList;

    }

    public List<SchedulerOrderStepHistoryDBItem> getOrderStepHistoryItems(int limit) throws Exception {
        initSession();

        transaction = session.beginTransaction();
        Query query = session.createQuery("from SchedulerOrderStepHistoryDBItem " + getWhere());

        if (filter.getStartTime() != null && !filter.getStartTime().equals("")) {
            query.setTimestamp("startTime", filter.getStartTime());
        }
        if (filter.getEndTime() != null && !filter.getEndTime().equals("")) {
            query.setTimestamp("endTime", filter.getEndTime());
        }

        query.setMaxResults(limit);

        List<SchedulerOrderStepHistoryDBItem> historyList = query.list();
        transaction.commit();
        return historyList;
    }

}