5 * Copyright 2011, Alcatel-Lucent
7 * This file is part of FusionForge. FusionForge is free software;
8 * you can redistribute it and/or modify it under the terms of the
9 * GNU General Public License as published by the Free Software
10 * Foundation; either version 2 of the Licence, or (at your option)
13 * FusionForge is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License along
19 * with FusionForge; if not, write to the Free Software Foundation, Inc.,
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24 * Standard Alcatel-Lucent disclaimer for contributing to open source
26 * "The Roadmap ("Contribution") has not been tested and/or
27 * validated for release as or in products, combinations with products or
28 * other commercial use. Any use of the Contribution is entirely made at
29 * the user's own responsibility and the user can not rely on any features,
30 * functionalities or performances Alcatel-Lucent has attributed to the
33 * THE CONTRIBUTION BY ALCATEL-LUCENT IS PROVIDED AS IS, WITHOUT WARRANTY
34 * OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
35 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, COMPLIANCE,
36 * NON-INTERFERENCE AND/OR INTERWORKING WITH THE SOFTWARE TO WHICH THE
37 * CONTRIBUTION HAS BEEN MADE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL
38 * ALCATEL-LUCENT BE LIABLE FOR ANY DAMAGES OR OTHER LIABLITY, WHETHER IN
39 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
40 * CONTRIBUTION OR THE USE OR OTHER DEALINGS IN THE CONTRIBUTION, WHETHER
41 * TOGETHER WITH THE SOFTWARE TO WHICH THE CONTRIBUTION RELATES OR ON A STAND
45 require_once $gfcommon.'include/Error.class.php';
46 require_once $gfcommon.'tracker/Roadmap.class.php';
48 class RoadmapFactory extends Error {
57 function __construct($group) {
60 if (is_object($group)) {
61 if ($group->isError()) {
62 $this->setError('in RoadmapFactory, '.$group->getErrorMessage());
65 $this->group = $group;
66 $this->group_id = $group->getID();
68 $this->setError(_('Invalid Group'));
72 public function getRoadmaps($enable_only=false) {
73 if ($this->roadmaps) {
74 return $this->roadmaps;
79 $enable_filter = 'AND enable=1';
82 $result = db_query_params ('SELECT * FROM roadmap WHERE group_id=$1 '.$enable_filter.' ORDER BY name',
83 array ($this->group_id));
84 if (! $result /* || ! db_numrows($result) */) {
85 $this->setError('in getRoadmaps, '.db_error());
88 $this->roadmaps = array();
89 while($entry = db_fetch_array($result)) {
90 $roadmap = new Roadmap($this->group, $entry['roadmap_id'], $entry);
91 if($roadmap->isError()) {
92 $this->setError($roadmap->getErrorMessage());
94 $this->roadmaps[] = $roadmap;
98 return $this->roadmaps;
101 public function getRoadmapByID($roadmap_id, $enable_only=false) {
102 $roadmaps = $this->getRoadmaps($enable_only);
103 foreach ($roadmaps as $roadmap) {
104 if($roadmap->isError()) {
105 $this->setError($roadmap->getErrorMessage());
107 if ($roadmap->getID() == $roadmap_id) {
116 public function getRoadmapByName($name, $enable_only=false) {
117 $roadmaps = $this->getRoadmaps($enable_only);
118 foreach ($roadmaps as $roadmap) {
119 if($roadmap->isError()) {
120 $this->setError($roadmap->getErrorMessage());
122 if ($roadmap->getName() == $name) {
131 public function getDefault() {
132 $roadmaps = $this->getRoadmaps();
133 foreach ($roadmaps as $roadmap) {
134 if($roadmap->isError()) {
135 $this->setError($roadmap->getErrorMessage());
137 if ($roadmap->isDefault()) {
138 return $roadmap->getID();