adiwg-mdtranslator 2.9.2 → 2.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (179) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -2
  3. data/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +8 -8
  4. data/lib/adiwg/mdtranslator/internal/module_dateTimeFun.rb +179 -160
  5. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_albers.rb +1 -2
  6. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_azimuthEquidistant.rb +1 -2
  7. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_equidistantConic.rb +1 -2
  8. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_equirectangular.rb +1 -2
  9. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_generalVertical.rb +1 -2
  10. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_gnomonic.rb +1 -2
  11. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_lambertConic.rb +1 -2
  12. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_lambertEqualArea.rb +1 -2
  13. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_mercator.rb +1 -2
  14. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_millerCylinder.rb +1 -2
  15. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_modifiedAlaska.rb +1 -2
  16. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_obliqueMercator.rb +1 -2
  17. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_orthographic.rb +1 -2
  18. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_polarStereo.rb +1 -2
  19. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_polyconic.rb +1 -2
  20. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_robinson.rb +1 -2
  21. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_sinusoidal.rb +1 -2
  22. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_spaceOblique.rb +1 -2
  23. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_stereographic.rb +1 -2
  24. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_transverseMercator.rb +1 -2
  25. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_vanDerGrinten.rb +1 -2
  26. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_attribute.rb +16 -4
  27. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_citation.rb +14 -1
  28. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_codeSet.rb +8 -2
  29. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_contact.rb +36 -8
  30. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_date.rb +2 -2
  31. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_dateTime.rb +2 -2
  32. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_digitalForm.rb +8 -2
  33. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_distribution.rb +8 -2
  34. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_entity.rb +12 -3
  35. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_entityAttribute.rb +5 -0
  36. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_entityOverview.rb +4 -1
  37. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_enumerated.rb +12 -3
  38. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_fgdc.rb +2 -2
  39. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_geodeticReference.rb +13 -4
  40. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_geographicResolution.rb +13 -4
  41. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_geologicAge.rb +6 -0
  42. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_horizontalReference.rb +3 -3
  43. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_identification.rb +58 -12
  44. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_keyword.rb +36 -0
  45. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_lineage.rb +8 -2
  46. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_localSystem.rb +1 -1
  47. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_mapCoordinateInfo.rb +51 -12
  48. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_mapGridSystem.rb +46 -9
  49. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_mapLocalPlanar.rb +8 -2
  50. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_mapProjection.rb +4 -1
  51. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_metadataInfo.rb +10 -4
  52. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_methodology.rb +4 -1
  53. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_offlineOption.rb +16 -4
  54. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_onlineOption.rb +13 -4
  55. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_orderProcess.rb +9 -1
  56. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_pointVector.rb +21 -4
  57. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_process.rb +8 -1
  58. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_publication.rb +8 -2
  59. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_quality.rb +14 -3
  60. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_range.rb +8 -2
  61. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_raster.rb +12 -3
  62. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_security.rb +12 -3
  63. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_series.rb +8 -2
  64. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_source.rb +20 -5
  65. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_spatialDomain.rb +32 -8
  66. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_taxonClass.rb +8 -2
  67. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_taxonSystem.rb +20 -5
  68. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_taxonomy.rb +8 -2
  69. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_transferInfo.rb +4 -1
  70. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_verticalAltitude.rb +12 -3
  71. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_verticalDepth.rb +9 -0
  72. data/lib/adiwg/mdtranslator/readers/fgdc/version.rb +2 -1
  73. data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader.rb +10 -10
  74. data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_validator.rb +13 -16
  75. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_additionalDocumentation.rb +55 -55
  76. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_address.rb +85 -85
  77. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_allocation.rb +8 -8
  78. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_associatedResource.rb +91 -92
  79. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_attribute.rb +212 -212
  80. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_attributeGroup.rb +43 -43
  81. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_bearingDistanceResolution.rb +8 -8
  82. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_boundingBox.rb +11 -11
  83. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_citation.rb +17 -17
  84. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_constraint.rb +26 -13
  85. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_contact.rb +13 -12
  86. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_coordinateResolution.rb +8 -5
  87. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_coverageDescription.rb +77 -77
  88. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataDictionary.rb +9 -7
  89. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_date.rb +54 -54
  90. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dateTime.rb +35 -35
  91. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dimension.rb +70 -70
  92. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_distribution.rb +15 -4
  93. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_distributor.rb +53 -53
  94. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_domain.rb +5 -5
  95. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_domainItem.rb +5 -5
  96. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_duration.rb +92 -91
  97. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entity.rb +10 -10
  98. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityAttribute.rb +28 -18
  99. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityForeignKey.rb +58 -59
  100. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityIndex.rb +52 -53
  101. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_extent.rb +70 -56
  102. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_featureCollection.rb +64 -63
  103. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_format.rb +6 -6
  104. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_funding.rb +9 -6
  105. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geoJson.rb +47 -47
  106. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geodetic.rb +7 -7
  107. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geographicExtent.rb +12 -7
  108. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geographicResolution.rb +6 -5
  109. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geologicAge.rb +6 -6
  110. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryCollection.rb +63 -63
  111. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryFeature.rb +84 -84
  112. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryObject.rb +50 -49
  113. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryProperties.rb +57 -57
  114. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_georectifiedRepresentation.rb +115 -100
  115. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_georeferenceableRepresentation.rb +85 -82
  116. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_gmlIdentifier.rb +46 -46
  117. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_graphic.rb +78 -78
  118. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_gridRepresentation.rb +61 -56
  119. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_identifier.rb +72 -72
  120. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_imageDescription.rb +106 -107
  121. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_keyword.rb +4 -4
  122. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_keywordObject.rb +46 -46
  123. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_legalConstraint.rb +55 -51
  124. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_lineage.rb +87 -83
  125. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_locale.rb +46 -46
  126. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_maintenance.rb +73 -74
  127. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_mdJson.rb +11 -5
  128. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_measure.rb +56 -55
  129. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_medium.rb +88 -88
  130. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadata.rb +106 -105
  131. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadataInfo.rb +4 -3
  132. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadataRepository.rb +4 -4
  133. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_obliqueLinePoint.rb +7 -4
  134. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_onlineResource.rb +60 -61
  135. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_orderProcess.rb +47 -47
  136. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_party.rb +57 -57
  137. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_phone.rb +49 -51
  138. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_processStep.rb +6 -6
  139. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_projectionParameters.rb +31 -30
  140. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_referenceSystemParameters.rb +16 -2
  141. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_releasability.rb +53 -47
  142. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceInfo.rb +15 -13
  143. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceType.rb +46 -46
  144. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceUsage.rb +95 -95
  145. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_responsibleParty.rb +67 -67
  146. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_schema.rb +47 -46
  147. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_scope.rb +47 -47
  148. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_scopeDescription.rb +68 -63
  149. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_securityConstraint.rb +50 -50
  150. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_series.rb +38 -38
  151. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_source.rb +8 -8
  152. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialReference.rb +6 -5
  153. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialRepresentation.rb +77 -75
  154. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialResolution.rb +8 -14
  155. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomicClassification.rb +71 -72
  156. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomicSystem.rb +46 -45
  157. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomy.rb +118 -116
  158. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_temporalExtent.rb +48 -46
  159. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timeInstant.rb +8 -8
  160. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timeInterval.rb +50 -50
  161. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timePeriod.rb +21 -14
  162. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_transferOption.rb +86 -75
  163. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_valueRange.rb +4 -4
  164. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_vectorObject.rb +45 -45
  165. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_vectorRepresentation.rb +45 -33
  166. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_verticalDatum.rb +28 -6
  167. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_verticalExtent.rb +59 -59
  168. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_voucher.rb +43 -43
  169. data/lib/adiwg/mdtranslator/readers/mdReaders.rb +6 -2
  170. data/lib/adiwg/mdtranslator/version.rb +9 -1
  171. data/lib/adiwg/mdtranslator/writers/html/sections/html_entityAttribute.rb +3 -3
  172. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_featureConstraint.rb +50 -46
  173. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_multiplicity.rb +53 -43
  174. data/lib/adiwg/mdtranslator/writers/iso19110/version.rb +3 -1
  175. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_entityAttribute.rb +1 -1
  176. data/lib/adiwg/mdtranslator/writers/mdWriters.rb +58 -58
  177. data/lib/adiwg/mdtranslator.rb +177 -165
  178. data/lib/adiwg/mdtranslator_cli.rb +8 -3
  179. metadata +2 -2
@@ -2,11 +2,12 @@
2
2
  # Reader - ADIwg JSON to internal data structure
3
3
 
4
4
  # History:
5
- # Stan Smith 2016-10-17 refactored for mdJson 2.0
6
- # Stan Smith 2015-07-14 refactored to remove global namespace constants
7
- # Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
8
- # Stan Smith 2014-12-15 refactored to handle namespacing readers and writers
9
- # Stan Smith 2014-07-03 resolve require statements using Mdtranslator.reader_module
5
+ # Stan Smith 2018-02-19 refactored error and warning messaging
6
+ # Stan Smith 2016-10-17 refactored for mdJson 2.0
7
+ # Stan Smith 2015-07-14 refactored to remove global namespace constants
8
+ # Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
9
+ # Stan Smith 2014-12-15 refactored to handle namespacing readers and writers
10
+ # Stan Smith 2014-07-03 resolve require statements using Mdtranslator.reader_module
10
11
  # Stan Smith 2013-11-26 original script
11
12
 
12
13
  require_relative 'module_scope'
@@ -15,90 +16,93 @@ require_relative 'module_processStep'
15
16
  require_relative 'module_source'
16
17
 
17
18
  module ADIWG
18
- module Mdtranslator
19
- module Readers
20
- module MdJson
21
-
22
- module ResourceLineage
23
-
24
- def self.unpack(hLineage, responseObj)
25
-
26
- # return nil object if input is empty
27
- if hLineage.empty?
28
- responseObj[:readerExecutionMessages] << 'Resource Lineage object is empty'
29
- responseObj[:readerExecutionPass] = false
30
- return nil
31
- end
32
-
33
- # instance classes needed in script
34
- intMetadataClass = InternalMetadata.new
35
- intLineage = intMetadataClass.newLineage
36
-
37
- # lineage - statement
38
- if hLineage.has_key?('statement')
39
- if hLineage['statement'] != ''
40
- intLineage[:statement] = hLineage['statement']
41
- end
42
- end
43
-
44
- # lineage - resource scope
45
- if hLineage.has_key?('scope')
46
- hObject = hLineage['scope']
47
- unless hObject.empty?
48
- hReturn = Scope.unpack(hObject, responseObj)
49
- unless hReturn.nil?
50
- intLineage[:resourceScope] = hReturn
51
- end
52
- end
19
+ module Mdtranslator
20
+ module Readers
21
+ module MdJson
22
+
23
+ module ResourceLineage
24
+
25
+ def self.unpack(hLineage, responseObj)
26
+
27
+ # return nil object if input is empty
28
+ if hLineage.empty?
29
+ responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: resource lineage object is empty'
30
+ return nil
31
+ end
32
+
33
+ # instance classes needed in script
34
+ intMetadataClass = InternalMetadata.new
35
+ intLineage = intMetadataClass.newLineage
36
+
37
+ haveLineage = false
38
+
39
+ # lineage - statement
40
+ if hLineage.has_key?('statement')
41
+ unless hLineage['statement'] == ''
42
+ intLineage[:statement] = hLineage['statement']
43
+ haveLineage = true
44
+ end
45
+ end
46
+
47
+ # lineage - resource scope
48
+ if hLineage.has_key?('scope')
49
+ hObject = hLineage['scope']
50
+ unless hObject.empty?
51
+ hReturn = Scope.unpack(hObject, responseObj)
52
+ unless hReturn.nil?
53
+ intLineage[:resourceScope] = hReturn
53
54
  end
54
-
55
- # lineage - citation []
56
- if hLineage.has_key?('citation')
57
- aCitation = hLineage['citation']
58
- aCitation.each do |item|
59
- hCitation = Citation.unpack(item, responseObj)
60
- unless hCitation.nil?
61
- intLineage[:lineageCitation] << hCitation
62
- end
63
- end
55
+ end
56
+ end
57
+
58
+ # lineage - citation []
59
+ if hLineage.has_key?('citation')
60
+ aCitation = hLineage['citation']
61
+ aCitation.each do |item|
62
+ hCitation = Citation.unpack(item, responseObj)
63
+ unless hCitation.nil?
64
+ intLineage[:lineageCitation] << hCitation
64
65
  end
65
-
66
- # lineage - sources []
67
- if hLineage.has_key?('source')
68
- aSource = hLineage['source']
69
- aSource.each do |item|
70
- hSource = Source.unpack(item, responseObj)
71
- unless hSource.nil?
72
- intLineage[:dataSources] << hSource
73
- end
74
- end
66
+ end
67
+ end
68
+
69
+ # lineage - sources []
70
+ if hLineage.has_key?('source')
71
+ aSource = hLineage['source']
72
+ aSource.each do |item|
73
+ hSource = Source.unpack(item, responseObj)
74
+ unless hSource.nil?
75
+ intLineage[:dataSources] << hSource
76
+ haveLineage = true
75
77
  end
76
-
77
- # lineage - process steps []
78
- if hLineage.has_key?('processStep')
79
- aSteps = hLineage['processStep']
80
- aSteps.each do |item|
81
- hSteps = ProcessStep.unpack(item, responseObj)
82
- unless hSteps.nil?
83
- intLineage[:processSteps] << hSteps
84
- end
85
- end
78
+ end
79
+ end
80
+
81
+ # lineage - process steps []
82
+ if hLineage.has_key?('processStep')
83
+ aSteps = hLineage['processStep']
84
+ aSteps.each do |item|
85
+ hSteps = ProcessStep.unpack(item, responseObj)
86
+ unless hSteps.nil?
87
+ intLineage[:processSteps] << hSteps
88
+ haveLineage = true
86
89
  end
90
+ end
91
+ end
87
92
 
88
- if intLineage[:statement].nil? &&
89
- intLineage[:dataSources].empty? &&
90
- intLineage[:processSteps].empty?
91
- responseObj[:readerExecutionMessages] << 'Resource Lineage must have at least one statement, processStep, or ssource'
92
- responseObj[:readerExecutionPass] = false
93
- return nil
94
- end
95
-
96
- return intLineage
97
- end
93
+ unless haveLineage
94
+ responseObj[:readerExecutionMessages] <<
95
+ 'ERROR: mdJson reader: resource lineage must have at least one statement, process step, or source'
96
+ responseObj[:readerExecutionPass] = false
97
+ return nil
98
+ end
98
99
 
99
- end
100
+ return intLineage
101
+ end
100
102
 
101
103
  end
102
- end
103
- end
104
+
105
+ end
106
+ end
107
+ end
104
108
  end
@@ -2,65 +2,65 @@
2
2
  # Reader - ADIwg JSON to internal data structure
3
3
 
4
4
  # History:
5
+ # Stan Smith 2018-02-19 refactored error and warning messaging
5
6
  # Stan Smith 2016-10-05 refactored for mdJson 2.0
6
7
  # Stan Smith 2015-07-28 original script
7
8
 
8
9
  module ADIWG
9
- module Mdtranslator
10
- module Readers
11
- module MdJson
10
+ module Mdtranslator
11
+ module Readers
12
+ module MdJson
12
13
 
13
- module Locale
14
+ module Locale
14
15
 
15
- def self.unpack(hLocale, responseObj)
16
+ def self.unpack(hLocale, responseObj)
16
17
 
17
- # return nil object if input is empty
18
- if hLocale.empty?
19
- responseObj[:readerExecutionMessages] << 'Locale object is empty'
20
- responseObj[:readerExecutionPass] = false
21
- return nil
22
- end
18
+ # return nil object if input is empty
19
+ if hLocale.empty?
20
+ responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: locale object is empty'
21
+ return nil
22
+ end
23
23
 
24
- # instance classes needed in script
25
- intMetadataClass = InternalMetadata.new
26
- intLocale = intMetadataClass.newLocale
24
+ # instance classes needed in script
25
+ intMetadataClass = InternalMetadata.new
26
+ intLocale = intMetadataClass.newLocale
27
27
 
28
- # locale - language (required)
29
- # return nil if no language code is provided
30
- if hLocale.has_key?('language')
31
- intLocale[:languageCode] = hLocale['language']
32
- end
33
- if intLocale[:languageCode].nil? || intLocale[:languageCode] == ''
34
- responseObj[:readerExecutionMessages] << 'Locale object did not provide a language code'
35
- responseObj[:readerExecutionPass] = false
36
- return nil
37
- end
28
+ # locale - language (required)
29
+ # return nil if no language code is provided
30
+ if hLocale.has_key?('language')
31
+ intLocale[:languageCode] = hLocale['language']
32
+ end
33
+ if intLocale[:languageCode].nil? || intLocale[:languageCode] == ''
34
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: locale language code is missing'
35
+ responseObj[:readerExecutionPass] = false
36
+ return nil
37
+ end
38
38
 
39
- # locale - country
40
- if hLocale.has_key?('country')
41
- if hLocale['country'] != ''
42
- intLocale[:countryCode] = hLocale['country']
43
- end
44
- end
39
+ # locale - country
40
+ if hLocale.has_key?('country')
41
+ unless hLocale['country'] == ''
42
+ intLocale[:countryCode] = hLocale['country']
43
+ end
44
+ end
45
45
 
46
- # locale - character set (required)
47
- # return nil if no character set code is provided
48
- if hLocale.has_key?('characterSet')
49
- intLocale[:characterEncoding] = hLocale['characterSet']
50
- end
51
- if intLocale[:characterEncoding].nil? || intLocale[:characterEncoding] == ''
52
- responseObj[:readerExecutionMessages] << 'Locale object did not provide a character set code'
53
- responseObj[:readerExecutionPass] = false
54
- return nil
55
- end
46
+ # locale - character set (required)
47
+ # return nil if no character set code is provided
48
+ if hLocale.has_key?('characterSet')
49
+ intLocale[:characterEncoding] = hLocale['characterSet']
50
+ end
51
+ if intLocale[:characterEncoding].nil? || intLocale[:characterEncoding] == ''
52
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: locale character set code is missing'
53
+ responseObj[:readerExecutionPass] = false
54
+ return nil
55
+ end
56
56
 
57
- return intLocale
57
+ return intLocale
58
58
 
59
- end
60
-
61
- end
59
+ end
62
60
 
63
61
  end
64
- end
65
- end
62
+
63
+ end
64
+ end
65
+ end
66
66
  end
@@ -2,92 +2,91 @@
2
2
  # Reader - ADIwg JSON to internal data structure
3
3
 
4
4
  # History:
5
- # Stan Smith 2016-10-23 original script
5
+ # Stan Smith 2018-02-19 refactored error and warning messaging
6
+ # Stan Smith 2016-10-23 original script
6
7
 
7
8
  require_relative 'module_date'
8
9
  require_relative 'module_responsibleParty'
9
10
  require_relative 'module_scope'
10
11
 
11
12
  module ADIWG
12
- module Mdtranslator
13
- module Readers
14
- module MdJson
15
-
16
- module Maintenance
17
-
18
- def self.unpack(hMaint, responseObj)
19
-
20
-
21
- # return nil object if input is empty
22
- if hMaint.empty?
23
- responseObj[:readerExecutionMessages] << 'Resource Maintenance object is empty'
24
- responseObj[:readerExecutionPass] = false
25
- return nil
13
+ module Mdtranslator
14
+ module Readers
15
+ module MdJson
16
+
17
+ module Maintenance
18
+
19
+ def self.unpack(hMaint, responseObj)
20
+
21
+ # return nil object if input is empty
22
+ if hMaint.empty?
23
+ responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: resource maintenance object is empty'
24
+ return nil
25
+ end
26
+
27
+ # instance classes needed in script
28
+ intMetadataClass = InternalMetadata.new
29
+ intMaint = intMetadataClass.newMaintenance
30
+
31
+ # maintenance - frequency (required)
32
+ if hMaint.has_key?('frequency')
33
+ intMaint[:frequency] = hMaint['frequency']
34
+ end
35
+ if intMaint[:frequency].nil? || intMaint[:frequency] == ''
36
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: resource maintenance frequency is missing'
37
+ responseObj[:readerExecutionPass] = false
38
+ return nil
39
+ end
40
+
41
+ # maintenance - date []
42
+ if hMaint.has_key?('date')
43
+ aItems = hMaint['date']
44
+ aItems.each do |item|
45
+ hReturn = Date.unpack(item, responseObj)
46
+ unless hReturn.nil?
47
+ intMaint[:dates] << hReturn
26
48
  end
27
-
28
- # instance classes needed in script
29
- intMetadataClass = InternalMetadata.new
30
- intMaint = intMetadataClass.newMaintenance
31
-
32
- # maintenance - frequency (required)
33
- if hMaint.has_key?('frequency')
34
- intMaint[:frequency] = hMaint['frequency']
49
+ end
50
+ end
51
+
52
+ # maintenance - scope []
53
+ if hMaint.has_key?('scope')
54
+ aItems = hMaint['scope']
55
+ aItems.each do |item|
56
+ hReturn = Scope.unpack(item, responseObj)
57
+ unless hReturn.nil?
58
+ intMaint[:scopes] << hReturn
35
59
  end
36
- if intMaint[:frequency].nil? || intMaint[:frequency] == ''
37
- responseObj[:readerExecutionMessages] << 'Resource Maintenance attribute frequency is missing'
38
- responseObj[:readerExecutionPass] = false
39
- return nil
60
+ end
61
+ end
62
+
63
+ # maintenance - note []
64
+ if hMaint.has_key?('note')
65
+ hMaint['note'].each do |item|
66
+ if item != ''
67
+ intMaint[:notes] << item
40
68
  end
41
-
42
- # maintenance - date []
43
- if hMaint.has_key?('date')
44
- aItems = hMaint['date']
45
- aItems.each do |item|
46
- hReturn = Date.unpack(item, responseObj)
47
- unless hReturn.nil?
48
- intMaint[:dates] << hReturn
49
- end
50
- end
69
+ end
70
+ end
71
+
72
+ # maintenance - contact []
73
+ if hMaint.has_key?('contact')
74
+ aItems = hMaint['contact']
75
+ aItems.each do |item|
76
+ hReturn = ResponsibleParty.unpack(item, responseObj)
77
+ unless hReturn.nil?
78
+ intMaint[:contacts] << hReturn
51
79
  end
80
+ end
81
+ end
52
82
 
53
- # maintenance - scope []
54
- if hMaint.has_key?('scope')
55
- aItems = hMaint['scope']
56
- aItems.each do |item|
57
- hReturn = Scope.unpack(item, responseObj)
58
- unless hReturn.nil?
59
- intMaint[:scopes] << hReturn
60
- end
61
- end
62
- end
83
+ return intMaint
63
84
 
64
- # maintenance - note []
65
- if hMaint.has_key?('note')
66
- hMaint['note'].each do |item|
67
- if item != ''
68
- intMaint[:notes] << item
69
- end
70
- end
71
- end
72
-
73
- # maintenance - contact []
74
- if hMaint.has_key?('contact')
75
- aItems = hMaint['contact']
76
- aItems.each do |item|
77
- hReturn = ResponsibleParty.unpack(item, responseObj)
78
- unless hReturn.nil?
79
- intMaint[:contacts] << hReturn
80
- end
81
- end
82
- end
83
-
84
- return intMaint
85
-
86
- end
87
-
88
- end
85
+ end
89
86
 
90
87
  end
91
- end
92
- end
88
+
89
+ end
90
+ end
91
+ end
93
92
  end
@@ -2,7 +2,8 @@
2
2
  # Reader - ADIwg JSON to internal data structure
3
3
 
4
4
  # History:
5
- # Stan Smith 2016-11-07 original script
5
+ # Stan Smith 2018-02-19 refactored error and warning messaging
6
+ # Stan Smith 2016-11-07 original script
6
7
 
7
8
  require 'adiwg/mdtranslator/internal/internal_metadata_obj'
8
9
  require_relative 'module_schema'
@@ -22,7 +23,7 @@ module ADIWG
22
23
 
23
24
  # return nil object if input is empty
24
25
  if hMdJson.empty?
25
- responseObj[:readerExecutionMessages] << 'mdJson object is empty'
26
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: object is empty'
26
27
  responseObj[:readerExecutionPass] = false
27
28
  return nil
28
29
  end
@@ -42,7 +43,7 @@ module ADIWG
42
43
  end
43
44
  end
44
45
  if intObj[:schema].empty?
45
- responseObj[:readerExecutionMessages] << 'mdJson object is missing schema'
46
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: schema object is missing'
46
47
  responseObj[:readerExecutionPass] = false
47
48
  return nil
48
49
  end
@@ -59,12 +60,12 @@ module ADIWG
59
60
  end
60
61
  end
61
62
  if intObj[:contacts].empty?
62
- responseObj[:readerExecutionMessages] << 'mdJson object is missing contact'
63
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: contact object is missing'
63
64
  responseObj[:readerExecutionPass] = false
64
65
  return nil
65
66
  end
66
67
 
67
- # mdJson - metadata {metadata}
68
+ # mdJson - metadata {metadata} (required)
68
69
  if hMdJson.has_key?('metadata')
69
70
  hObject = hMdJson['metadata']
70
71
  unless hObject.empty?
@@ -74,6 +75,11 @@ module ADIWG
74
75
  end
75
76
  end
76
77
  end
78
+ if intObj[:metadata].empty?
79
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: metadata object is missing'
80
+ responseObj[:readerExecutionPass] = false
81
+ return nil
82
+ end
77
83
 
78
84
  # mdJson - data dictionary [] {dataDictionary}
79
85
  if hMdJson.has_key?('dataDictionary')