Skip to content
Snippets Groups Projects
Commit d3319468 authored by Daniel Berthereau's avatar Daniel Berthereau
Browse files

Cleaned code.

parent ef3136c8
No related branches found
No related tags found
No related merge requests found
......@@ -86,6 +86,7 @@ abstract class AbstractMetadata extends AbstractXmlGenerator implements Metadata
public function appendHeader(DOMElement $parent, ItemRepresentation $item)
{
$headerData = [];
$headerData['identifier'] = OaiIdentifier::itemToOaiId($item->id());
$datestamp = $item->modified();
......@@ -137,6 +138,12 @@ abstract class AbstractMetadata extends AbstractXmlGenerator implements Metadata
}
}
/**
* Appends a metadata element, a child element with the required format, and
* further children for each of the properties present in the item.
*
* {@inheritDoc}
*/
abstract public function appendMetadata(DOMElement $parent, ItemRepresentation $item);
abstract public function getMetadataPrefix();
......
......@@ -13,7 +13,7 @@ use OaiPmhRepository\OaiPmh\Plugin\OaiIdentifier;
use Omeka\Api\Representation\ItemRepresentation;
/**
* Class implmenting metadata output CDWA Lite.
* Class implementing metadata output CDWA Lite.
*
* @link http://www.getty.edu/research/conducting_research/standards/cdwa/cdwalite.html
*/
......@@ -31,12 +31,7 @@ class CdwaLite extends AbstractMetadata
/**
* Appends CDWALite metadata.
*
* Appends a metadata element, an child element with the required format,
* and further children for each of the Dublin Core fields present in the
* item.
*
* {@inheritDoc}
* @see \OaiPmhRepository\OaiPmh\Metadata\AbstractMetadata::appendMetadata()
*/
public function appendMetadata(DOMElement $metadataElement, ItemRepresentation $item)
{
......@@ -65,7 +60,7 @@ class CdwaLite extends AbstractMetadata
/* Type => objectWorkTypeWrap->objectWorkType
* Required. Fill with 'Unknown' if omitted.
*/
$types = $item->value('dcterms:type', ['all' => true]) ?: [];
$types = $item->value('dcterms:type', ['all' => true, 'default' => []]);
$objectWorkTypeWrap = $this->appendNewElement($descriptive, 'cdwalite:objectWorkTypeWrap');
if (empty($types)) {
$types[] = 'Unknown';
......@@ -78,7 +73,7 @@ class CdwaLite extends AbstractMetadata
/* Title => titleWrap->titleSet->title
* Required. Fill with 'Unknown' if omitted.
*/
$titles = $item->value('dcterms:title', ['all' => true]) ?: [];
$titles = $item->value('dcterms:title', ['all' => true, 'default' => []]);
$titleWrap = $this->appendNewElement($descriptive, 'cdwalite:titleWrap');
foreach ($titles as $title) {
......@@ -90,7 +85,7 @@ class CdwaLite extends AbstractMetadata
* Required. Fill with 'Unknown' if omitted.
* Non-repeatable, implode for inclusion of many creators.
*/
$creators = $item->value('dcterms:creator', ['all' => true]) ?: [];
$creators = $item->value('dcterms:creator', ['all' => true, 'default' => []]);
$creatorTexts = [];
foreach ($creators as $creator) {
......@@ -134,7 +129,7 @@ class CdwaLite extends AbstractMetadata
* Required. Fill with 'Unknown' if omitted.
*/
$indexingDatesWrap = $this->appendNewElement($descriptive, 'cdwalite:indexingDatesWrap');
$dates = $item->value('dcterms:date', ['all' => true]) ?: [];
$dates = $item->value('dcterms:date', ['all' => true, 'default' => []]);
foreach ($dates as $date) {
$indexingDatesSet = $this->appendNewElement($indexingDatesWrap, 'cdwalite:indexingDatesSet');
$this->appendNewElement($indexingDatesSet, 'cdwalite:earliestDate', (string) $date);
......@@ -151,7 +146,7 @@ class CdwaLite extends AbstractMetadata
/* Subject => classWrap->classification
* Not required.
*/
$subjects = $item->value('dcterms:subject', ['all' => true]) ?: [];
$subjects = $item->value('dcterms:subject', ['all' => true, 'default' => []]);
$classWrap = $this->appendNewElement($descriptive, 'cdwalite:classWrap');
foreach ($subjects as $subject) {
$this->appendNewElement($classWrap, 'cdwalite:classification', (string) $subject);
......@@ -160,7 +155,7 @@ class CdwaLite extends AbstractMetadata
/* Description => descriptiveNoteWrap->descriptiveNoteSet->descriptiveNote
* Not required.
*/
$descriptions = $item->value('dcterms:description', ['all' => true]) ?: [];
$descriptions = $item->value('dcterms:description', ['all' => true, 'default' => []]);
if (!empty($descriptions)) {
$descriptiveNoteWrap = $this->appendNewElement($descriptive, 'cdwalite:descriptiveNoteWrap');
foreach ($descriptions as $description) {
......@@ -179,7 +174,7 @@ class CdwaLite extends AbstractMetadata
/* Rights => rightsWork
* Not required.
*/
$rights = $item->value('dcterms:rights', ['all' => true]) ?: [];
$rights = $item->value('dcterms:rights', ['all' => true, 'default' => []]);
foreach ($rights as $right) {
$this->appendNewElement($administrative, 'cdwalite:rightsWork', (string) $right);
}
......
......@@ -51,6 +51,7 @@ interface MetadataInterface
* @uses appendMetadata
*
* @param DOMElement $parent
* @param ItemRepresentation $item
*/
public function appendRecord(DOMElement $parent, ItemRepresentation $item);
......@@ -61,6 +62,7 @@ interface MetadataInterface
* appends in to the document.
*
* @param DOMElement $parent
* @param ItemRepresentation $item
*/
public function appendHeader(DOMElement $parent, ItemRepresentation $item);
......@@ -68,6 +70,7 @@ interface MetadataInterface
* Appends the metadata for one Omeka item to the XML document.
*
* @param DOMElement $parent
* @param ItemRepresentation $item
*/
public function appendMetadata(DOMElement $parent, ItemRepresentation $item);
}
......@@ -12,9 +12,9 @@ use DOMElement;
use Omeka\Api\Representation\ItemRepresentation;
/**
* Class implmenting MODS metadata output format.
* Class implementing METS metadata output format.
*
* @link http://www.loc.gov/standards/mods/
* @link https://www.loc.gov/standards/mets/
*/
class Mets extends AbstractMetadata
{
......@@ -31,14 +31,9 @@ class Mets extends AbstractMetadata
const DC_NAMESPACE_URI = 'http://purl.org/dc/elements/1.1/';
/**
* Appends MODS metadata.
*
* Appends a metadata element, an child element with the required format,
* and further children for each of the Dublin Core fields present in the
* item.
* Appends METS metadata.
*
* {@inheritDoc}
* @see \OaiPmhRepository\OaiPmh\Metadata\AbstractMetadata::appendMetadata()
*/
public function appendMetadata(DOMElement $metadataElement, ItemRepresentation $item)
{
......@@ -71,7 +66,7 @@ class Mets extends AbstractMetadata
];
foreach ($dcElementNames as $elementName) {
$values = $item->value("dcterms:$elementName", ['all' => true]) ?: [];
$values = $item->value("dcterms:$elementName", ['all' => true, 'default' => []]);
foreach ($values as $value) {
$this->appendNewElement($dcXml, "dc:$elementName", (string) $value);
}
......
......@@ -12,9 +12,9 @@ use DOMElement;
use Omeka\Api\Representation\ItemRepresentation;
/**
* Class implmenting MODS metadata output format.
* Class implementing MODS metadata output format.
*
* @link http://www.loc.gov/standards/mods/
* @link https://www.loc.gov/standards/mods/
*/
class Mods extends AbstractMetadata
{
......@@ -30,14 +30,9 @@ class Mods extends AbstractMetadata
/**
* Appends MODS metadata.
*
* Appends a metadata element, an child element with the required format,
* and further children for each of the Dublin Core fields present in the
* item.
*
* @link http://www.loc.gov/standards/mods/dcsimple-mods.html
*
* {@inheritDoc}
* @see \OaiPmhRepository\OaiPmh\Metadata\AbstractMetadata::appendMetadata()
*/
public function appendMetadata(DOMElement $metadataElement, ItemRepresentation $item)
{
......@@ -53,13 +48,13 @@ class Mods extends AbstractMetadata
$mods->setAttribute('xsi:schemaLocation', self::METADATA_NAMESPACE
. ' ' . self::METADATA_SCHEMA);
$titles = $item->value('dcterms:title', ['all' => true]) ?: [];
$titles = $item->value('dcterms:title', ['all' => true, 'default' => []]);
foreach ($titles as $title) {
$titleInfo = $this->appendNewElement($mods, 'titleInfo');
$this->appendNewElement($titleInfo, 'title', (string) $title);
}
$creators = $item->value('dcterms:creator', ['all' => true]) ?: [];
$creators = $item->value('dcterms:creator', ['all' => true, 'default' => []]);
foreach ($creators as $creator) {
$name = $this->appendNewElement($mods, 'name');
$this->appendNewElement($name, 'namePart', (string) $creator);
......@@ -68,7 +63,7 @@ class Mods extends AbstractMetadata
$roleTerm->setAttribute('type', 'text');
}
$contributors = $item->value('dcterms:contributor', ['all' => true]) ?: [];
$contributors = $item->value('dcterms:contributor', ['all' => true, 'default' => []]);
foreach ($contributors as $contributor) {
$name = $this->appendNewElement($mods, 'name');
$this->appendNewElement($name, 'namePart', (string) $contributor);
......@@ -77,41 +72,41 @@ class Mods extends AbstractMetadata
$roleTerm->setAttribute('type', 'text');
}
$subjects = $item->value('dcterms:contributor', ['all' => true]) ?: [];
$subjects = $item->value('dcterms:contributor', ['all' => true, 'default' => []]);
foreach ($subjects as $subject) {
$subjectTag = $this->appendNewElement($mods, 'subject');
$this->appendNewElement($subjectTag, 'topic', (string) $subject);
}
$descriptions = $item->value('dcterms:description', ['all' => true]) ?: [];
$descriptions = $item->value('dcterms:description', ['all' => true, 'default' => []]);
foreach ($descriptions as $description) {
$this->appendNewElement($mods, 'note', (string) $description);
}
$formats = $item->value('dcterms:format', ['all' => true]) ?: [];
$formats = $item->value('dcterms:format', ['all' => true, 'default' => []]);
foreach ($formats as $format) {
$physicalDescription = $this->appendNewElement($mods, 'physicalDescription');
$this->appendNewElement($physicalDescription, 'form', (string) $format);
}
$languages = $item->value('dcterms:language', ['all' => true]) ?: [];
$languages = $item->value('dcterms:language', ['all' => true, 'default' => []]);
foreach ($languages as $language) {
$languageElement = $this->appendNewElement($mods, 'language');
$languageTerm = $this->appendNewElement($languageElement, 'languageTerm', (string) $language);
$languageTerm->setAttribute('type', 'text');
}
$rights = $item->value('dcterms:rights', ['all' => true]) ?: [];
$rights = $item->value('dcterms:rights', ['all' => true, 'default' => []]);
foreach ($rights as $right) {
$this->appendNewElement($mods, 'accessCondition', (string) $right);
}
$types = $item->value('dcterms:type', ['all' => true]) ?: [];
$types = $item->value('dcterms:type', ['all' => true, 'default' => []]);
foreach ($types as $type) {
$this->appendNewElement($mods, 'genre', (string) $type);
}
$identifiers = $item->value('dcterms:identifier', ['all' => true]) ?: [];
$identifiers = $item->value('dcterms:identifier', ['all' => true, 'default' => []]);
foreach ($identifiers as $identifier) {
$text = (string) $identifier;
$idElement = $this->appendNewElement($mods, 'identifier', $text);
......@@ -122,12 +117,12 @@ class Mods extends AbstractMetadata
}
}
$sources = $item->value('dcterms:source', ['all' => true]) ?: [];
$sources = $item->value('dcterms:source', ['all' => true, 'default' => []]);
foreach ($sources as $source) {
$this->_addRelatedItem($mods, (string) $source, true);
}
$relations = $item->value('dcterms:relation', ['all' => true]) ?: [];
$relations = $item->value('dcterms:relation', ['all' => true, 'default' => []]);
foreach ($relations as $relation) {
$this->_addRelatedItem($mods, (string) $relation);
}
......@@ -150,8 +145,8 @@ class Mods extends AbstractMetadata
$url = $this->appendNewElement($location, 'url', $url);
$url->setAttribute('usage', 'primary display');
$publishers = $item->value('dcterms:publisher', ['all' => true]) ?: [];
$dates = $item->value('dcterms:date', ['all' => true]) ?: [];
$publishers = $item->value('dcterms:publisher', ['all' => true, 'default' => []]);
$dates = $item->value('dcterms:date', ['all' => true, 'default' => []]);
// Empty originInfo sections are illegal
if (count($publishers) + count($dates) > 0) {
......@@ -177,8 +172,8 @@ class Mods extends AbstractMetadata
* location subelement if so. Otherwise, a titleInfo is used.
*
* @param DomElement $mods
* @param string $text
* @param bool $original
* @param string $text
* @param bool $original
*/
private function _addRelatedItem($mods, $text, $original = false)
{
......@@ -199,7 +194,6 @@ class Mods extends AbstractMetadata
* Returns whether the given test is (looks like) a URL.
*
* @param string $text
*
* @return bool
*/
private function _isUrl($text)
......
......@@ -12,7 +12,7 @@ use DOMElement;
use Omeka\Api\Representation\ItemRepresentation;
/**
* Class implmenting metadata output for the required oai_dc metadata format.
* Class implementing metadata output for the required oai_dc metadata format.
* oai_dc is output of the 15 unqualified Dublin Core fields.
*/
class OaiDc extends AbstractMetadata
......@@ -32,12 +32,7 @@ class OaiDc extends AbstractMetadata
/**
* Appends Dublin Core metadata.
*
* Appends a metadata element, an child element with the required format,
* and further children for each of the Dublin Core fields present in the
* item.
*
* {@inheritDoc}
* @see \OaiPmhRepository\OaiPmh\Metadata\AbstractMetadata::appendMetadata()
*/
public function appendMetadata(DOMElement $metadataElement, ItemRepresentation $item)
{
......@@ -54,7 +49,7 @@ class OaiDc extends AbstractMetadata
$oai_dc->setAttribute('xsi:schemaLocation', self::METADATA_NAMESPACE . ' ' .
self::METADATA_SCHEMA);
/* Each of the 16 unqualified Dublin Core elements, in the order
/* Each of the 15 unqualified Dublin Core elements, in the order
* specified by the oai_dc XML schema
*/
$dcElementNames = [
......@@ -68,7 +63,7 @@ class OaiDc extends AbstractMetadata
* compliant per-node declarations.
*/
foreach ($dcElementNames as $elementName) {
$values = $item->value("dcterms:$elementName", ['all' => true]) ?: [];
$values = $item->value("dcterms:$elementName", ['all' => true, 'default' => []]);
foreach ($values as $value) {
$this->appendNewElement($oai_dc, "dc:$elementName", (string) $value);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment