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: package wilos.hibernate.misc.concreteactivity;
019:
020: import java.util.ArrayList;
021: import java.util.List;
022:
023: import org.hibernate.Query;
024: import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
025:
026: import wilos.model.misc.concreteactivity.ConcreteActivity;
027: import wilos.model.misc.concretebreakdownelement.ConcreteBreakdownElement;
028:
029: /**
030: * ConcreteActivityDao manage requests from the system to store Concrete
031: * Activities to the database
032: *
033: * @author garwind
034: * @author deder
035: */
036: public class ConcreteActivityDao extends HibernateDaoSupport {
037: /**
038: * Saves or updates a ConcreteActivity
039: *
040: * @param _concreteactivity The ConcreteActivity to be saved or updated
041: */
042: public String saveOrUpdateConcreteActivity(
043: ConcreteActivity _concreteactivity) {
044: if (_concreteactivity != null) {
045: this .getHibernateTemplate().saveOrUpdate(_concreteactivity);
046: return _concreteactivity.getId();
047: }
048: return "";
049: }
050:
051: /**
052: * Returns a list of all the ConcreteActivities
053: *
054: * @return A list of all the ConcreteActivities
055: */
056: public List<ConcreteActivity> getAllConcreteActivities() {
057: List<ConcreteActivity> concreteActivities = new ArrayList<ConcreteActivity>();
058: for (Object obj : this .getHibernateTemplate().loadAll(
059: ConcreteActivity.class)) {
060: ConcreteActivity ca = (ConcreteActivity) obj;
061: concreteActivities.add(ca);
062: }
063: return concreteActivities;
064: }
065:
066: /**
067: * Tests if there are one or more existing ConcreteActivities that have the given ID
068: *
069: * @param _id The wanted ID
070: * @return True or false
071: */
072: public boolean existsConcreteActivity(String _id) {
073: List concreteactvities = this .getHibernateTemplate().find(
074: "from ConcreteActivity a where a.id=?", _id);
075: return (concreteactvities.size() > 0);
076: }
077:
078: /**
079: * Returns the ConcreteActivities which has the specified ID
080: *
081: * @param _id The id of the wanted ConcreteActivity
082: * @return The wanted ConcreteActivity
083: */
084: public ConcreteActivity getConcreteActivity(String _id) {
085: if (!_id.equals(""))
086: return (ConcreteActivity) this .getHibernateTemplate().get(
087: ConcreteActivity.class, _id);
088: return null;
089: }
090:
091: /**
092: * Returns the ConcreteActivity which has the given prefix
093: * If there are many ConcreteActivities with the same prefix, it returns the first of them
094: *
095: * @param _prefix The wanted prefix
096: * @return The wanted ConcreteActivity
097: */
098: public ConcreteActivity getConcreteActivityFromPrefix(String _prefix) {
099: List concreteactvities = this .getHibernateTemplate().find(
100: "from ConcreteActivity a where a.prefix=?", _prefix);
101: if (concreteactvities.size() > 0)
102: return (ConcreteActivity) concreteactvities.get(0);
103: else
104: return null;
105: }
106:
107: /**
108: * Deletes the ConcreteActivity
109: *
110: * @param _concreteactivity The ConcreteActivity to be deleted
111: */
112: public void deleteConcreteActivity(
113: ConcreteActivity _concreteactivity) {
114: this .getHibernateTemplate().delete(_concreteactivity);
115: }
116:
117: /**
118: * Returns the ConcreteActivity which has the given name
119: * If there are many ConcreteActivities with the same name, it returns the first of them
120: *
121: * @param _name The wanted name
122: * @return The wanted ConcreteActivity
123: */
124: public ConcreteActivity getConcreteActivityByName(String _name) {
125: if (!_name.equals("")) {
126: List activities = this .getHibernateTemplate().find(
127: "from Activity a where a.name=?", _name);
128: if (activities.size() > 0)
129: return (ConcreteActivity) activities.get(0);
130: }
131: return null;
132: }
133:
134: /**
135: * Returns the maximum display order for the given concreteActivity
136: *
137: * @param _cact the wanted concreteActivity
138: * @return the highest displayOrder for the given activity
139: */
140: public String getMaxDisplayOrder(ConcreteActivity _cact) {
141: List cacts = this
142: .getHibernateTemplate()
143: .find(
144: "from ConcreteActivity ca where ca.id=? order by displayOrder DESC",
145: _cact.getId());
146: String res = ((ConcreteActivity) cacts.get(0))
147: .getDisplayOrder();
148: return res.substring(res.length() - 1);
149: }
150: }
|