lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadataInfo.rb in adiwg-mdtranslator-2.8.0 vs lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadataInfo.rb in adiwg-mdtranslator-2.9.0

- old
+ new

@@ -1,157 +1,169 @@ # unpack metadata information # Reader - ADIwg JSON to internal data structure # History: -# Stan Smith 2017-01-31 remove metadataCreationDate -# Stan Smith 2016-10-31 original script +# Stan Smith 2018-01-27 add metadataConstraints +# Stan Smith 2017-01-31 remove metadataCreationDate +# Stan Smith 2016-10-31 original script require_relative 'module_identifier' require_relative 'module_citation' require_relative 'module_locale' require_relative 'module_responsibleParty' require_relative 'module_date' require_relative 'module_onlineResource' +require_relative 'module_constraint' require_relative 'module_maintenance' module ADIWG - module Mdtranslator - module Readers - module MdJson + module Mdtranslator + module Readers + module MdJson - module MetadataInfo + module MetadataInfo - def self.unpack(hMetaInfo, responseObj) + def self.unpack(hMetaInfo, responseObj) - # return nil object if input is empty - if hMetaInfo.empty? - responseObj[:readerExecutionMessages] << 'MetadataInfo object is empty' - responseObj[:readerExecutionPass] = false - return nil - end + # return nil object if input is empty + if hMetaInfo.empty? + responseObj[:readerExecutionMessages] << 'MetadataInfo object is empty' + responseObj[:readerExecutionPass] = false + return nil + end - # instance classes needed in script - intMetadataClass = InternalMetadata.new - intMetaInfo = intMetadataClass.newMetadataInfo + # instance classes needed in script + intMetadataClass = InternalMetadata.new + intMetaInfo = intMetadataClass.newMetadataInfo - # metadata information - metadata identifier {identifier} - if hMetaInfo.has_key?('metadataIdentifier') - hObject = hMetaInfo['metadataIdentifier'] - unless hObject.empty? - hReturn = Identifier.unpack(hObject, responseObj) - unless hReturn.nil? - intMetaInfo[:metadataIdentifier] = hReturn - end - end + # metadata information - metadata identifier {identifier} + if hMetaInfo.has_key?('metadataIdentifier') + hObject = hMetaInfo['metadataIdentifier'] + unless hObject.empty? + hReturn = Identifier.unpack(hObject, responseObj) + unless hReturn.nil? + intMetaInfo[:metadataIdentifier] = hReturn end + end + end - # metadata information - parent metadata {citation} - if hMetaInfo.has_key?('parentMetadata') - hObject = hMetaInfo['parentMetadata'] - unless hObject.empty? - hReturn = Citation.unpack(hObject, responseObj) - unless hReturn.nil? - intMetaInfo[:parentMetadata] = hReturn - end - end + # metadata information - parent metadata {citation} + if hMetaInfo.has_key?('parentMetadata') + hObject = hMetaInfo['parentMetadata'] + unless hObject.empty? + hReturn = Citation.unpack(hObject, responseObj) + unless hReturn.nil? + intMetaInfo[:parentMetadata] = hReturn end + end + end - # metadata information - default metadata locale {locale} (default to utf-8) - if hMetaInfo.has_key?('defaultMetadataLocale') - hObject = hMetaInfo['defaultMetadataLocale'] - unless hObject.empty? - hReturn = Locale.unpack(hObject, responseObj) - unless hReturn.nil? - intMetaInfo[:defaultMetadataLocale] = hReturn - end - end + # metadata information - default metadata locale {locale} (default to utf-8) + if hMetaInfo.has_key?('defaultMetadataLocale') + hObject = hMetaInfo['defaultMetadataLocale'] + unless hObject.empty? + hReturn = Locale.unpack(hObject, responseObj) + unless hReturn.nil? + intMetaInfo[:defaultMetadataLocale] = hReturn end + end + end - # metadata information - other metadata locale [] {locale} - if hMetaInfo.has_key?('otherMetadataLocale') - aItems = hMetaInfo['otherMetadataLocale'] - aItems.each do |item| - hReturn = Locale.unpack(item, responseObj) - unless hReturn.nil? - intMetaInfo[:otherMetadataLocales] << hReturn - end - end + # metadata information - other metadata locale [] {locale} + if hMetaInfo.has_key?('otherMetadataLocale') + aItems = hMetaInfo['otherMetadataLocale'] + aItems.each do |item| + hReturn = Locale.unpack(item, responseObj) + unless hReturn.nil? + intMetaInfo[:otherMetadataLocales] << hReturn end + end + end - # metadata information - metadata contact [] {responsibleParty} (required) - if hMetaInfo.has_key?('metadataContact') - aItems = hMetaInfo['metadataContact'] - aItems.each do |item| - hReturn = ResponsibleParty.unpack(item, responseObj) - unless hReturn.nil? - intMetaInfo[:metadataContacts] << hReturn - end - end + # metadata information - metadata contact [] {responsibleParty} (required) + if hMetaInfo.has_key?('metadataContact') + aItems = hMetaInfo['metadataContact'] + aItems.each do |item| + hReturn = ResponsibleParty.unpack(item, responseObj) + unless hReturn.nil? + intMetaInfo[:metadataContacts] << hReturn end - if intMetaInfo[:metadataContacts].empty? - responseObj[:readerExecutionMessages] << 'MetadataInfo object is missing metadataContacts' - responseObj[:readerExecutionPass] = false - return nil - end + end + end + if intMetaInfo[:metadataContacts].empty? + responseObj[:readerExecutionMessages] << 'MetadataInfo object is missing metadataContacts' + responseObj[:readerExecutionPass] = false + return nil + end - # metadata information - metadata dates [] {date} - if hMetaInfo.has_key?('metadataDate') - aItems = hMetaInfo['metadataDate'] - aItems.each do |item| - hReturn = Date.unpack(item, responseObj) - unless hReturn.nil? - intMetaInfo[:metadataDates] << hReturn - end - end + # metadata information - metadata dates [] {date} + if hMetaInfo.has_key?('metadataDate') + aItems = hMetaInfo['metadataDate'] + aItems.each do |item| + hReturn = Date.unpack(item, responseObj) + unless hReturn.nil? + intMetaInfo[:metadataDates] << hReturn end + end + end - # metadata information - metadata online resource [] {onlineResource} - if hMetaInfo.has_key?('metadataOnlineResource') - aItems = hMetaInfo['metadataOnlineResource'] - aItems.each do |item| - hReturn = OnlineResource.unpack(item, responseObj) - unless hReturn.nil? - intMetaInfo[:metadataLinkages] << hReturn - end - end + # metadata information - metadata online resource [] {onlineResource} + if hMetaInfo.has_key?('metadataOnlineResource') + aItems = hMetaInfo['metadataOnlineResource'] + aItems.each do |item| + hReturn = OnlineResource.unpack(item, responseObj) + unless hReturn.nil? + intMetaInfo[:metadataLinkages] << hReturn end + end + end - # metadata information - metadata maintenance {maintenance} - if hMetaInfo.has_key?('metadataMaintenance') - hObject = hMetaInfo['metadataMaintenance'] - unless hObject.empty? - hReturn = Maintenance.unpack(hObject, responseObj) - unless hReturn.nil? - intMetaInfo[:metadataMaintenance] = hReturn - end - end + # metadata information - metadata constraint [] {constraint} + if hMetaInfo.has_key?('metadataConstraint') + hMetaInfo['metadataConstraint'].each do |hItem| + hReturn = Constraint.unpack(hItem, responseObj) + unless hReturn.nil? + intMetaInfo[:metadataConstraints] << hReturn end + end + end - # metadata information - alternative metadata reference [] {citation} - if hMetaInfo.has_key?('alternateMetadataReference') - aItems = hMetaInfo['alternateMetadataReference'] - aItems.each do |item| - hReturn = Citation.unpack(item, responseObj) - unless hReturn.nil? - intMetaInfo[:alternateMetadataReferences] << hReturn - end - end + # metadata information - metadata maintenance {maintenance} + if hMetaInfo.has_key?('metadataMaintenance') + hObject = hMetaInfo['metadataMaintenance'] + unless hObject.empty? + hReturn = Maintenance.unpack(hObject, responseObj) + unless hReturn.nil? + intMetaInfo[:metadataMaintenance] = hReturn end + end + end - # metadata information - metadata status - if hMetaInfo.has_key?('metadataStatus') - if hMetaInfo['metadataStatus'] != '' - intMetaInfo[:metadataStatus] = hMetaInfo['metadataStatus'] - end + # metadata information - alternative metadata reference [] {citation} + if hMetaInfo.has_key?('alternateMetadataReference') + aItems = hMetaInfo['alternateMetadataReference'] + aItems.each do |item| + hReturn = Citation.unpack(item, responseObj) + unless hReturn.nil? + intMetaInfo[:alternateMetadataReferences] << hReturn end + end + end - return intMetaInfo + # metadata information - metadata status + if hMetaInfo.has_key?('metadataStatus') + if hMetaInfo['metadataStatus'] != '' + intMetaInfo[:metadataStatus] = hMetaInfo['metadataStatus'] + end + end - end + return intMetaInfo - end + end end - end - end + + end + end + end end