Java tutorial
/** * 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.db; import java.io.File; import java.util.List; import org.hibernate.Query; import com.sos.scheduler.db.SchedulerInstancesFilter; import com.sos.hibernate.layer.SOSHibernateDBLayer; import com.sos.scheduler.db.SchedulerInstancesDBLayer; /** * * \class SchedulerInstancesDBLayer * \brief SchedulerInstancesDBLayer - * * \details * * \section SchedulerInstancesDBLayer.java_intro_sec Introduction * * \section SchedulerInstancesDBLayer.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 13.09.2011 * \see reference * * Created on 13.09.2011 14:40:18 */ public class SchedulerInstancesDBLayer extends SOSHibernateDBLayer { @SuppressWarnings("unused") private final String conClassName = "SchedulerInstancesDBLayer"; private SchedulerInstancesFilter filter = null; public SchedulerInstancesDBLayer(File configurationFile_) { super(); this.setConfigurationFile(configurationFile_); initFilter(); } public void initFilter() { this.filter = new SchedulerInstancesFilter(); this.filter.setDateFormat("yyyy-MM-dd HH:mm:ss"); this.filter.setOrderCriteria("startTime"); } public int delete() { if (session == null) { beginTransaction(); } String hql = "delete from SchedulerInstancesDBItem " + getWhere(); Query query = session.createQuery(hql); if (filter.getHostname() != null && !filter.getHostname().equals("")) { query.setText("hostName", filter.getHostname()); } if (filter.getDbName() != null && !filter.getDbName().equals("")) { query.setText("dbName", filter.getDbName()); } if (filter.getSchedulerId() != null && !filter.getSchedulerId().equals("")) { query.setText("schedulerId", filter.getSchedulerId()); } if (filter.getPort() > 0) { query.setInteger("tcpPort", filter.getPort()); } int row = query.executeUpdate(); return row; } private String getWhere() { String where = ""; String and = ""; if (filter.getHostname() != null && !filter.getHostname().equals("")) { where += and + " hostName = :hostName"; and = " and "; } if (filter.getDbName() != null && !filter.getDbName().equals("")) { where += and + " getDbName <= :dbName "; and = " and "; } if (filter.getSchedulerId() != null && !filter.getSchedulerId().equals("")) { where += and + " schedulerId = :schedulerId"; and = " and "; } if (filter.getPort() != null && filter.getPort() > 0) { where += and + " tcpPort = :tcpPort"; and = " and "; } if (where.trim().equals("")) { } else { where = "where " + where; } return where; } public List<SchedulerInstancesDBItem> getSchedulerInstancesList() { initSession(); Query query = session.createQuery("from SchedulerInstancesDBItem " + getWhere() + this.filter.getOrderCriteria() + this.filter.getSortMode()); if (filter.getHostname() != null && !filter.getHostname().equals("")) { query.setText("hostName", filter.getHostname()); } if (filter.getDbName() != null && !filter.getDbName().equals("")) { query.setText("dbName", filter.getDbName()); } if (filter.getSchedulerId() != null && !filter.getSchedulerId().equals("")) { query.setText("schedulerId", filter.getSchedulerId()); } if (filter.getPort() != null && filter.getPort() > 0) { query.setInteger("tcpPort", filter.getPort()); } if (this.getFilter().getLimit() > 0) { query.setMaxResults(this.getFilter().getLimit()); } List<SchedulerInstancesDBItem> schedulerInstancesList = query.list(); return schedulerInstancesList; } public SchedulerInstancesDBItem getInstanceById(String schedulerId) { initFilter(); this.filter.setLimit(1); filter.setSchedulerId(schedulerId); List<SchedulerInstancesDBItem> schedulerList = getSchedulerInstancesList(); if (schedulerList.size() > 0) { SchedulerInstancesDBItem schedulerDbItem = (SchedulerInstancesDBItem) schedulerList.get(0); return schedulerDbItem; } else { return null; } } public SchedulerInstancesFilter getFilter() { return filter; } public void setFilter(SchedulerInstancesFilter filter) { this.filter = filter; } public void insertScheduler(String schedulerId, String hostName, Integer port) { SchedulerInstancesDBItem schedulerDbItem = null; initFilter(); this.getFilter().setHostname(hostName); this.getFilter().setPort(port); this.getFilter().setLimit(1); this.getFilter().setSchedulerId(schedulerId); List<SchedulerInstancesDBItem> schedulerList = getSchedulerInstancesList(); if (schedulerList.size() > 0) { schedulerDbItem = schedulerList.get(0); } else { schedulerDbItem = new SchedulerInstancesDBItem(); schedulerDbItem.setHostName(hostName); schedulerDbItem.setTcpPort(port); schedulerDbItem.setSchedulerId(schedulerId); this.saveOrUpdate(schedulerDbItem); } } }