001: /*
002: * Wilos Is a cLever process Orchestration Software - http://www.wilos-project.org
003: * Copyright (C) 2006-2007 Paul Sabatier University, IUP ISI (Toulouse, France) <massie@irit.fr>
004: * Copyright (C) 2007 Sebastien BALARD <sbalard@wilos-project.org>
005: * Copyright (C) 2007-2008 Paul Sabatier University, IUP ISI (Toulouse, France) <massie@irit.fr>
006: *
007: * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
008: * General Public License as published by the Free Software Foundation; either version 2 of the License,
009: * or (at your option) any later version.
010: *
011: * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
012: * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
013: * GNU General Public License for more details.
014: *
015: * You should have received a copy of the GNU General Public License along with this program; if not,
016: * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
017: */
018:
019: package wilos.hibernate.spem2.process;
020:
021: import java.util.ArrayList;
022: import java.util.List;
023:
024: import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
025:
026: import wilos.model.spem2.process.Process;
027:
028: /**
029: * ProcessDao manage requests from the system to store Processes into the
030: * database
031: *
032: * @author garwind
033: * @author deder
034: */
035: public class ProcessDao extends HibernateDaoSupport {
036:
037: /**
038: * Saves or updates a Process
039: *
040: * @param _process The Process to be saved or updated
041: */
042:
043: public String saveOrUpdateProcess(Process _process) {
044: if (_process != null) {
045: this .getHibernateTemplate().saveOrUpdate(_process);
046: return _process.getId();
047: }
048: return "";
049: }
050:
051: /**
052: * Returns a list of all the Processes
053: *
054: * @return A list of all the Processes
055: */
056: public List<Process> getAllProcesses() {
057: List<Process> processes = new ArrayList<Process>();
058: for (Object obj : this .getHibernateTemplate().loadAll(
059: Process.class)) {
060: Process u = (Process) obj;
061: processes.add(u);
062: }
063: return processes;
064: }
065:
066: /**
067: * Returns the Process which has the specified ID
068: *
069: * @param _id The wanted Process's ID
070: * @return The wanted Process
071: */
072: public Process getProcess(String _id) {
073: if (!_id.equals(""))
074: return (Process) this .getHibernateTemplate().get(
075: Process.class, _id);
076: return null;
077: }
078:
079: /**
080: * Returns a process with the given guid If there are many process with the
081: * same guid, it returns the first
082: *
083: * @param _guid the given guidance id
084: * @return the wanted Process
085: */
086: public Process getProcessFromGuid(String _guid) {
087: if (!_guid.equals("")) {
088: List processes = this .getHibernateTemplate().find(
089: "from Process p where p.guid=?", _guid);
090: if (processes.size() > 0)
091: return (Process) processes.get(0);
092: }
093: return null;
094: }
095:
096: /**
097: * Deletes the Process
098: *
099: * @param _process The Process to be deleted
100: */
101: public void deleteProcess(Process _process) {
102: this.getHibernateTemplate().delete(_process);
103: }
104: }
|