Open Journal Systems  3.3.0
DepositPointDAO.inc.php
1 <?php
2 
14 import('lib.pkp.classes.db.DAO');
15 
16 class DepositPointDAO extends DAO {
18  protected $_plugin = null;
19 
24  public function __construct(SwordPlugin $parentPlugin) {
25  $this->_plugin = $parentPlugin;
26  parent::__construct();
27  }
28 
33  public function newDataObject() {
34  $this->_plugin->import('classes.DepositPoint');
35  return new DepositPoint();
36  }
37 
44  public function getById($depositPointId, $contextId = null) {
45  $params = array((int) $depositPointId);
46  if ($contextId) $params[] = (int) $contextId;
47 
48  $result = $this->retrieve(
49  'SELECT * FROM deposit_points WHERE deposit_point_id = ? ' . ($contextId?' AND context_id = ?':''),
50  $params
51  );
52 
53  $returner = null;
54  if ($result->RecordCount() != 0) {
55  $returner = $this->_fromRow($result->GetRowAssoc(false));
56  }
57  $result->Close();
58  return $returner;
59  }
60 
66  public function _fromRow($row) {
67  $depositPoint = $this->newDataObject();
68  $depositPoint->setId($row['deposit_point_id']);
69  $depositPoint->setContextId($row['context_id']);
70  $depositPoint->setSequence($row['seq']);
71  $depositPoint->setSwordUrl($row['url']);
72  $depositPoint->setType($row['type']);
73  $depositPoint->setSwordUsername($row['sword_username']);
74  $depositPoint->setSwordPassword($row['sword_password']);
75  $depositPoint->setSwordApikey($row['sword_apikey']);
76 
77  $this->getDataObjectSettings(
78  'deposit_point_settings',
79  'deposit_point_id',
80  $row['deposit_point_id'],
81  $depositPoint
82  );
83 
84  return $depositPoint;
85  }
86 
92  public function insertObject($depositPoint) {
93  $this->update(
94  'INSERT INTO deposit_points
95  (context_id,
96  url,
97  seq,
98  type,
99  sword_username,
100  sword_password,
101  sword_apikey)
102  VALUES
103  (?, ?, ?, ?, ?, ?, ?)',
104  array(
105  $depositPoint->getContextId(),
106  $depositPoint->getSwordUrl(),
107  $depositPoint->getSequence(),
108  $depositPoint->getType(),
109  $depositPoint->getSwordUsername(),
110  $depositPoint->getSwordPassword(),
111  $depositPoint->getSwordApikey(),
112  )
113  );
114  $depositPoint->setId($this->getInsertId());
115 
116  $this->updateLocaleFields($depositPoint);
117 
118  return $depositPoint->getId();
119  }
120 
125  public function getLocaleFieldNames() {
126  return array('name');
127  }
128 
133  public function updateLocaleFields($depositPoint) {
134  $this->updateDataObjectSettings('deposit_point_settings', $depositPoint, array(
135  'deposit_point_id' => $depositPoint->getId()
136  ));
137  }
138 
144  public function updateObject($depositPoint) {
145  $this->update(
146  'UPDATE deposit_points
147  SET
148  context_id = ?,
149  url = ?,
150  seq = ?,
151  type = ?,
152  sword_username = ?,
153  sword_password = ?,
154  sword_apikey = ?
155  WHERE deposit_point_id = ?',
156  array(
157  $depositPoint->getContextId(),
158  $depositPoint->getSwordUrl(),
159  $depositPoint->getSequence(),
160  $depositPoint->getType(),
161  $depositPoint->getSwordUsername(),
162  $depositPoint->getSwordPassword(),
163  $depositPoint->getSwordApikey(),
164  $depositPoint->getId()
165  )
166  );
167 
168  $this->updateLocaleFields($depositPoint);
169  }
170 
176  public function deleteObject($depositPoint) {
177  return $this->deleteById($depositPoint->getId());
178  }
179 
185  public function depositPointExists($depositPointId, $contextId) {
186  $result = $this->retrieve(
187  'SELECT COUNT(*) FROM deposit_points WHERE deposit_point_id = ? AND context_id = ?',
188  array((int) $depositPointId, (int) $contextId)
189  );
190  $returner = isset($result->fields[0]) && $result->fields[0] == 1 ? true : false;
191  $result->Close();
192  return $returner;
193  }
194 
201  public function deleteById($depositPointId, $contextId = null) {
202  if (isset($contextId) && !$this->depositPointExists($depositPointId, $contextId)) return false;
203  $this->update(
204  'DELETE FROM deposit_points WHERE deposit_point_id = ?', $depositPointId
205  );
206  $this->update(
207  'DELETE FROM deposit_point_settings WHERE deposit_point_id = ?', $depositPointId
208  );
209  return true;
210  }
211 
216  public function deleteByContextId($contextId) {
217  $depositPoints = $this->getByContextId($contextId);
218 
219  while ($depositPoint = $depositPoints->next()) {
220  $this->deleteById($depositPoint->getId());
221  }
222  }
223 
231  public function getByContextId($contextId, $rangeInfo = null, $type = null) {
232  $params = array((int) $contextId);
233  if ($type) $params[] = (int) $type;
234  $result = $this->retrieveRange(
235  'SELECT * FROM deposit_points WHERE context_id = ? '.($type?' AND type = ?':'').' ORDER BY seq ASC',
236  $params,
237  $rangeInfo
238  );
239 
240  return new DAOResultFactory($result, $this, '_fromRow');
241  }
242 
247  public function resequenceDepositPoints($contextId) {
248  $result = $this->retrieve(
249  'SELECT deposit_point_id FROM deposit_points WHERE context_id = ? ORDER BY seq',
250  $contextId
251  );
252  for ($i=1; !$result->EOF; $i++) {
253  list($depositPointId) = $result->fields;
254  $this->update(
255  'UPDATE deposit_points SET seq = ? WHERE deposit_point_id = ?',
256  array(
257  $i,
258  $depositPointId
259  )
260  );
261 
262  $result->MoveNext();
263  }
264  $result->Close();
265  }
266 
271  public function getInsertId() {
272  return $this->_getInsertId('deposit_points', 'deposit_point_id');
273  }
274 }
DepositPointDAO\_fromRow
_fromRow($row)
Definition: DepositPointDAO.inc.php:69
DepositPointDAO\depositPointExists
depositPointExists($depositPointId, $contextId)
Definition: DepositPointDAO.inc.php:188
SwordPlugin
SWORD deposit plugin class.
Definition: SwordPlugin.inc.php:23
DAOResultFactory
Wrapper around ADORecordSet providing "factory" features for generating objects from DAOs.
Definition: DAOResultFactory.inc.php:21
DAO\retrieveRange
& retrieveRange($sql, $params=false, $dbResultRange=null, $callHooks=true)
Definition: DAO.inc.php:176
DepositPoint
Deposit point entity.
Definition: DepositPoint.inc.php:14
DAO\retrieve
& retrieve($sql, $params=false, $callHooks=true)
Definition: DAO.inc.php:85
DepositPointDAO\updateLocaleFields
updateLocaleFields($depositPoint)
Definition: DepositPointDAO.inc.php:136
DepositPointDAO
Operations for retrieving and modifying DepositPoint objects.
Definition: DepositPointDAO.inc.php:16
DepositPointDAO\getLocaleFieldNames
getLocaleFieldNames()
Definition: DepositPointDAO.inc.php:128
DepositPointDAO\__construct
__construct(SwordPlugin $parentPlugin)
Definition: DepositPointDAO.inc.php:27
DepositPointDAO\resequenceDepositPoints
resequenceDepositPoints($contextId)
Definition: DepositPointDAO.inc.php:250
DepositPointDAO\insertObject
insertObject($depositPoint)
Definition: DepositPointDAO.inc.php:95
DepositPointDAO\deleteByContextId
deleteByContextId($contextId)
Definition: DepositPointDAO.inc.php:219
DepositPointDAO\updateObject
updateObject($depositPoint)
Definition: DepositPointDAO.inc.php:147
DAO\update
update($sql, $params=false, $callHooks=true, $dieOnError=true)
Definition: DAO.inc.php:214
DAO\_getInsertId
_getInsertId($table='', $id='')
Definition: DAO.inc.php:255
DepositPointDAO\getByContextId
getByContextId($contextId, $rangeInfo=null, $type=null)
Definition: DepositPointDAO.inc.php:234
DepositPointDAO\deleteObject
deleteObject($depositPoint)
Definition: DepositPointDAO.inc.php:179
DAO\getDataObjectSettings
getDataObjectSettings($tableName, $idFieldName, $idFieldValue, $dataObject)
Definition: DAO.inc.php:582
DepositPointDAO\getById
getById($depositPointId, $contextId=null)
Definition: DepositPointDAO.inc.php:47
DAO\updateDataObjectSettings
updateDataObjectSettings($tableName, $dataObject, $idArray)
Definition: DAO.inc.php:488
DepositPointDAO\deleteById
deleteById($depositPointId, $contextId=null)
Definition: DepositPointDAO.inc.php:204
DepositPointDAO\getInsertId
getInsertId()
Definition: DepositPointDAO.inc.php:274
DAO
Operations for retrieving and modifying objects from a database.
Definition: DAO.inc.php:31
DepositPointDAO\$_plugin
$_plugin
Definition: DepositPointDAO.inc.php:21
DepositPointDAO\newDataObject
newDataObject()
Definition: DepositPointDAO.inc.php:36