Open Monograph Press  3.3.0
MetadataRecord.inc.php
1 <?php
2 
23  var $_descriptions = array();
24 
25  //
26  // Get/set methods
27  //
35  function addDescription($metadataDescription, $replace = true) {
36  assert(is_a($metadataDescription, 'MetadataDescription'));
37 
38  // Check that the description complies with the meta-data schema
39  $descriptionMetadataSchema = $metadataDescription->getMetadataSchema();
40  $recordMetadataSchema = $this->getMetadataSchema();
41  if ($descriptionMetadataSchema->getName() != $recordMetadataSchema->getName()) return false;
42 
43  // Check whether we already have a description for the same
44  // application entity instance.
45  $applicationEntityId = $this->getApplicationEntityIdFromMetadataDescription($metadataDescription);
46  if (isset($this->_descriptions[$applicationEntityId]) && !$replace) return false;
47 
48  // Add the description
49  $this->_descriptions[$applicationEntityId] =& $metadataDescription;
50  }
51 
58  function removeDescription($applicationEntityId) {
59  // Remove the description if it exists
60  if (isset($applicationEntityId) && isset($this->_descriptions[$applicationEntityId])) {
61  unset($this->_descriptions[$applicationEntityId]);
62  return true;
63  }
64 
65  return false;
66  }
67 
72  function &getDescriptions() {
73  return $this->_descriptions;
74  }
75 
82  function &getDescription($applicationEntityId) {
83  assert(isset($applicationEntityId));
84 
85  // Retrieve the description
86  if (isset($this->_descriptions[$applicationEntityId])) {
87  return $this->_descriptions[$applicationEntityId];
88  } else {
89  $nullValue = null;
90  return $nullValue;
91  }
92  }
93 
101  function setDescriptions(&$descriptions) {
102  // Delete existing statements
103  $this->_descriptions = array();
104 
105  // Add descriptions one by one to validate them.
106  foreach($descriptions as $description) {
107  if (!($this->addDescription($description, false))) {
108  $this->_descriptions = array();
109  }
110  }
111  return true;
112  }
113 }
114 
MetadataRecord\addDescription
addDescription($metadataDescription, $replace=true)
Definition: MetadataRecord.inc.php:38
MetadataRecord\getDescriptions
& getDescriptions()
Definition: MetadataRecord.inc.php:75
MetadataRecord\getDescription
& getDescription($applicationEntityId)
Definition: MetadataRecord.inc.php:85
MetadataRecord
Class modeling a meta-data record (DCMI abstract model: an instance of a description set,...
Definition: MetadataRecord.inc.php:21
MetadataRecord\removeDescription
removeDescription($applicationEntityId)
Definition: MetadataRecord.inc.php:61
MetadataRecord\setDescriptions
setDescriptions(&$descriptions)
Definition: MetadataRecord.inc.php:104
MetadataRecord\$_descriptions
$_descriptions
Definition: MetadataRecord.inc.php:26