CWIS Developer Documentation
Qualifier.php
Go to the documentation of this file.
1 <?PHP
2 #
3 # FILE: Qualifier.php
4 #
5 # Part of the Collection Workflow Integration System (CWIS)
6 # Copyright 2012-2013 Edward Almasy and Internet Scout Research Group
7 # http://scout.wisc.edu/cwis/
8 #
9 
10 class Qualifier
11 {
12 
13  # ---- PUBLIC INTERFACE --------------------------------------------------
14 
18  const STATUS_OK = 0;
19 
24 
30  public function Qualifier($QualifierId = NULL)
31  {
32  $this->DB = new Database();
33 
34  # assume the qualifier operations will be successful
35  $this->Status = self::STATUS_OK;
36 
37  # no ID given
38  if (func_num_args() == 0)
39  {
40  # determine next qualifier ID
41  $HighestId = $this->DB->Query("
42  SELECT QualifierId FROM Qualifiers
43  ORDER BY QualifierId DESC
44  LIMIT 1",
45  "QualifierId");
46  $this->Id = $HighestId > 0 ? $HighestId + 1 : 1;
47 
48  # add record to database with that ID
49  $this->DB->Query("
50  INSERT INTO Qualifiers
51  SET QualifierId = ".addslashes($this->Id));
52  }
53 
54  # if ID supplied
55  else if (!is_null($QualifierId))
56  {
57  $this->Id = intval($QualifierId);
58 
59  # attempt to load qualifier info from database
60  $this->DB->Query("
61  SELECT * FROM Qualifiers
62  WHERE QualifierId = '".addslashes($this->Id)."'");
63 
64  # if the qualifier was found
65  if ($this->DB->NumRowsSelected() > 0)
66  {
67  # set attributes to values returned by database
68  $this->DBFields = $this->DB->FetchRow();
69  }
70 
71  # the qualifier was not found
72  else
73  {
74  $this->Status = self::STATUS_DOES_NOT_EXIST;
75  }
76  }
77 
78  # null given
79  else
80  {
81  $this->Status = self::STATUS_DOES_NOT_EXIST;
82  }
83  }
84 
89  public function Status()
90  {
91  return $this->Status;
92  }
93 
98  public function Delete()
99  {
100  # do not try deleting a qualifier with a bad status
101  if ($this->Status != self::STATUS_OK)
102  {
103  return;
104  }
105 
106  # delete record from database
107  $this->DB->Query("
108  DELETE FROM Qualifiers
109  WHERE QualifierId = ".addslashes($this->Id));
110 
111  # update status
112  $this->Status = self::STATUS_DOES_NOT_EXIST;
113  }
114 
119  public function Id()
120  {
121  return $this->Id;
122  }
123 
129  public function Name($NewValue=DB_NOVALUE)
130  {
131  return $this->UpdateValue("QualifierName", $NewValue);
132  }
133 
139  public function NSpace($NewValue=DB_NOVALUE)
140  {
141  return $this->UpdateValue("QualifierNamespace", $NewValue);
142  }
143 
149  public function Url($NewValue=DB_NOVALUE)
150  {
151  return $this->UpdateValue("QualifierUrl", $NewValue);
152  }
153 
154  # ---- PRIVATE INTERFACE -------------------------------------------------
155 
160  protected $Id;
161 
166  protected $Status;
167 
172  protected $DB;
173 
178  protected $DBFields;
179 
186  protected function UpdateValue($FieldName, $NewValue)
187  {
188  return $this->DB->UpdateValue(
189  "Qualifiers",
190  $FieldName,
191  $NewValue,
192  "QualifierId = '".addslashes($this->Id)."'",
193  $this->DBFields);
194  }
195 
196 }
$DBFields
Cached qualifier data from the database.
Definition: Qualifier.php:178
SQL database abstraction object with smart query caching.
const DB_NOVALUE
Url($NewValue=DB_NOVALUE)
Get or set the qualifier URL.
Definition: Qualifier.php:149
Status()
Get the status of this qualifier.
Definition: Qualifier.php:89
UpdateValue($FieldName, $NewValue)
Convenience method to supply parameters to Database::UpdateValue().
Definition: Qualifier.php:186
Qualifier($QualifierId=NULL)
Load the qualifier with the given ID or create a new qualifier if no ID is given. ...
Definition: Qualifier.php:30
Id()
Get the qualifier ID.
Definition: Qualifier.php:119
$DB
The database object.
Definition: Qualifier.php:172
$Id
The ID of the qualifier.
Definition: Qualifier.php:160
Name($NewValue=DB_NOVALUE)
Get or set the qualifier name.
Definition: Qualifier.php:129
Delete()
Delete the qualifier if in a valid state.
Definition: Qualifier.php:98
NSpace($NewValue=DB_NOVALUE)
Get or set the qualifier namespace.
Definition: Qualifier.php:139
$Status
The status code of the qualifier.
Definition: Qualifier.php:166
const STATUS_DOES_NOT_EXIST
Status code used for a non-existent qualifier.
Definition: Qualifier.php:23
const STATUS_OK
Status code used for an okay, valid qualifier.
Definition: Qualifier.php:18