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.jobnet.db; import com.sos.hibernate.layer.SOSHibernateDBLayer; import org.hibernate.Query; import java.io.File; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * * \class JobNetNodeDBLayer \brief JobNetNodeDBLayer - * * \details * * \section JobNetNodeDBLayer.java_intro_sec Introduction * * \section JobNetNodeDBLayer.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 JobNetNodeDBLayer extends SOSHibernateDBLayer { @SuppressWarnings("unused") private final String conClassName = "JobNetNodeDBLayer"; public final String conSVNVersion = "$Id: JobNetNodeDBLayer.java 20998 2013-09-05 07:39:12Z ss $"; private static final String NODE_ID = "nodeId"; private static final String ORDER_CRITERIA = "NODE_ID"; private static final String JOB_NET = "jobnet"; private static final String NODE = "node"; private static final String SCHEDULER_ID = "schedulerId"; private JobNetNodeFilter filter = null; public JobNetNodeDBLayer(File configurationFile_, String schedulerId_) { super(); this.filter = new JobNetNodeFilter(); this.filter.setSchedulerId(schedulerId_); this.setConfigurationFile(configurationFile_); this.filter = new JobNetNodeFilter(); this.filter.setOrderCriteria(ORDER_CRITERIA); } public JobNetNodeDBLayer(File configurationFile_) { super(); this.filter = new JobNetNodeFilter(); this.setConfigurationFile(configurationFile_); this.filter = new JobNetNodeFilter(); this.filter.setOrderCriteria(ORDER_CRITERIA); } private Query setQueryParams(String hql) { Query query = session.createQuery(hql); if (filter.getSchedulerId() != null && !filter.getSchedulerId().equals("")) { query.setParameter(SCHEDULER_ID, filter.getSchedulerId()); } if (filter.getNode() != null && !filter.getNode().equals("")) { query.setParameter(NODE, filter.getNode()); } if (filter.getJobnet() != null && !filter.getJobnet().equals("")) { query.setParameter(JOB_NET, filter.getJobnet()); } if (filter.getNodeId() != null) { query.setLong(NODE_ID, filter.getNodeId()); } return query; } public int delete() { String hql = "delete from JobNetNodeDBItem " + getWhere(); Query query = setQueryParams(hql); int row = query.executeUpdate(); return row; } private String getWhere() { String where = ""; String and = ""; if (filter.getSchedulerId() != null && !filter.getSchedulerId().equals("")) { where += and + " schedulerId = :schedulerId"; and = " and "; } if (filter.getNode() != null && !filter.getNode().equals("")) { where += and + " node = :node"; and = " and "; } if (filter.getJobnet() != null && !filter.getJobnet().equals("")) { where += and + " jobnet = :jobnet"; and = " and "; } if (filter.getNodeId() != null) { where += and + " nodeId = :nodeId"; and = " and "; } if (where.trim().equals("")) { } else { where = "where " + where; } return where; } public List<JobNetNodeDBItem> getJobnetNodeList(int limit) { initSession(); Query query = setQueryParams("from JobNetNodeDBItem table_nodes " + getWhere() + this.filter.getOrderCriteria() + this.filter.getSortMode()); if (limit > 0) { query.setMaxResults(limit); } @SuppressWarnings("unchecked") List<JobNetNodeDBItem> jobnetNodeList = query.list(); return jobnetNodeList; } public List<JobNetNodeDBItem> getJobnetNodeListForUpdate(int limit) { initSession(); Query query = setQueryParams("select for update from JobNetNodeDBItem table_nodes " + getWhere() + this.filter.getOrderCriteria() + this.filter.getSortMode()); if (limit > 0) { query.setMaxResults(limit); } @SuppressWarnings("unchecked") List<JobNetNodeDBItem> jobnetNodeList = query.list(); return jobnetNodeList; } public List<JobNetNodeDBItem> getJobnetList(int limit) { initSession(); Query query = setQueryParams(" from JobNetNodeDBItem table_nodes " + getWhere() + this.filter.getOrderCriteria() + this.filter.getSortMode()); if (limit > 0) { query.setMaxResults(limit); } @SuppressWarnings("unchecked") List<JobNetNodeDBItem> jobnetNodeList = query.list(); List<String> jobnetNodeListKeys = new ArrayList<String>(); List<JobNetNodeDBItem> jobnetNodeListDistinct = new ArrayList<JobNetNodeDBItem>(); Iterator<JobNetNodeDBItem> jobNetEntries = jobnetNodeList.iterator(); while (jobNetEntries.hasNext()) { JobNetNodeDBItem h = (JobNetNodeDBItem) jobNetEntries.next(); if (jobnetNodeListKeys.indexOf(h.getSchedulerId() + ":" + h.getJobnet()) < 0) { jobnetNodeListKeys.add(h.getSchedulerId() + ":" + h.getJobnet()); jobnetNodeListDistinct.add(h); } } return jobnetNodeListDistinct; } public JobNetNodeDBItem getNode(Long id) { filter.setNodeId(id); List<JobNetNodeDBItem> l = getJobnetNodeList(1); JobNetNodeDBItem item = l.get(0); return item; } public void addJobNetEdge(JobNetNodeDBItem jobNetNodeDBItem, JobNetEdgesDBItem jobNetEdgesDBItem) { jobNetNodeDBItem.addJobNetEdge(jobNetEdgesDBItem); } public void removeJobNetEdge(JobNetNodeDBItem jobNetNodeDBItem, JobNetEdgesDBItem jobNetEdgesDBItem) { jobNetNodeDBItem.removeJobNetEdge(jobNetEdgesDBItem); } public JobNetNodeFilter getFilter() { return filter; } public void setFilter(JobNetNodeFilter filter) { this.filter = filter; } }