lib/adiwg/mdtranslator/readers/mdJson/modules/module_domainItem.rb in adiwg-mdtranslator-2.8.0 vs lib/adiwg/mdtranslator/readers/mdJson/modules/module_domainItem.rb in adiwg-mdtranslator-2.9.0
- old
+ new
@@ -1,70 +1,84 @@
# unpack a data dictionary domain item
# Reader - ADIwg JSON V1 to internal data structure
# History:
-# Stan Smith 2016-10-07 refactored for mdJson 2.0
-# Stan Smith 2015-07-23 added error reporting of missing items
-# Stan Smith 2015-07-14 refactored to remove global namespace constants
-# Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
-# Stan Smith 2014-12-15 refactored to handle namespacing readers and writers
+# Stan Smith 2018-01-24 add domain item reference
+# Stan Smith 2016-10-07 refactored for mdJson 2.0
+# Stan Smith 2015-07-23 added error reporting of missing items
+# Stan Smith 2015-07-14 refactored to remove global namespace constants
+# Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
+# Stan Smith 2014-12-15 refactored to handle namespacing readers and writers
# Stan Smith 2013-12-01 original script
+require_relative 'module_citation'
+
module ADIWG
- module Mdtranslator
- module Readers
- module MdJson
+ module Mdtranslator
+ module Readers
+ module MdJson
- module DomainItem
+ module DomainItem
- def self.unpack(hDomItem, responseObj)
+ def self.unpack(hDomItem, responseObj)
- # return nil object if input is empty
- if hDomItem.empty?
- responseObj[:readerExecutionMessages] << 'Domain Member object is empty'
- responseObj[:readerExecutionPass] = false
- return nil
- end
+ # return nil object if input is empty
+ if hDomItem.empty?
+ responseObj[:readerExecutionMessages] << 'Domain Member object is empty'
+ responseObj[:readerExecutionPass] = false
+ return nil
+ end
- # instance classes needed in script
- intMetadataClass = InternalMetadata.new
- intItem = intMetadataClass.newDomainItem
+ # instance classes needed in script
+ intMetadataClass = InternalMetadata.new
+ intItem = intMetadataClass.newDomainItem
- # data dictionary domain item - name (required)
- if hDomItem.has_key?('name')
- intItem[:itemName] = hDomItem['name']
- end
- if intItem[:itemName].nil? || intItem[:itemName] == ''
- responseObj[:readerExecutionMessages] << 'Data Dictionary domain item name is missing'
- responseObj[:readerExecutionPass] = false
- return nil
- end
+ # data dictionary domain item - name (required)
+ if hDomItem.has_key?('name')
+ intItem[:itemName] = hDomItem['name']
+ end
+ if intItem[:itemName].nil? || intItem[:itemName] == ''
+ responseObj[:readerExecutionMessages] << 'Data Dictionary domain item name is missing'
+ responseObj[:readerExecutionPass] = false
+ return nil
+ end
- # data dictionary domain item - value (required)
- if hDomItem.has_key?('value')
- intItem[:itemValue] = hDomItem['value']
- end
- if intItem[:itemValue].nil? || intItem[:itemValue] == ''
- responseObj[:readerExecutionMessages] << 'Data Dictionary domain item value is missing'
- responseObj[:readerExecutionPass] = false
- return nil
- end
+ # data dictionary domain item - value (required)
+ if hDomItem.has_key?('value')
+ intItem[:itemValue] = hDomItem['value']
+ end
+ if intItem[:itemValue].nil? || intItem[:itemValue] == ''
+ responseObj[:readerExecutionMessages] << 'Data Dictionary domain item value is missing'
+ responseObj[:readerExecutionPass] = false
+ return nil
+ end
- # data dictionary domain item - definition (required)
- if hDomItem.has_key?('definition')
- intItem[:itemDefinition] = hDomItem['definition']
+ # data dictionary domain item - definition (required)
+ if hDomItem.has_key?('definition')
+ intItem[:itemDefinition] = hDomItem['definition']
+ end
+ if intItem[:itemDefinition].nil? || intItem[:itemDefinition] == ''
+ responseObj[:readerExecutionMessages] << 'Data Dictionary domain item definition is missing'
+ responseObj[:readerExecutionPass] = false
+ return nil
+ end
+
+ # data dictionary domain item - reference {citation}
+ if hDomItem.has_key?('reference')
+ hCitation = hDomItem['reference']
+ unless hCitation.empty?
+ hReturn = Citation.unpack(hCitation, responseObj)
+ unless hReturn.nil?
+ intItem[:itemReference] = hReturn
end
- if intItem[:itemDefinition].nil? || intItem[:itemDefinition] == ''
- responseObj[:readerExecutionMessages] << 'Data Dictionary domain item definition is missing'
- responseObj[:readerExecutionPass] = false
- return nil
- end
+ end
+ end
- return intItem
- end
+ return intItem
+ end
- end
-
end
- end
- end
+
+ end
+ end
+ end
end