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,6 +2,7 @@
2
2
  # Reader - ADIwg JSON to internal data structure
3
3
 
4
4
  # History:
5
+ # Stan Smith 2018-02-18 refactored error and warning messaging
5
6
  # Stan Smith 2018-01-25 rename dictionaryFormat to dictionaryFunctionalLanguage
6
7
  # Stan Smith 2017-11-09 add dictionary description
7
8
  # Stan Smith 2017-01-20 refactored for mdJson/mdTranslator 2.0
@@ -27,8 +28,7 @@ module ADIWG
27
28
 
28
29
  # return nil object if input is empty
29
30
  if hDictionary.empty?
30
- responseObj[:readerExecutionMessages] << 'Data Dictionary object is empty'
31
- responseObj[:readerExecutionPass] = false
31
+ responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: data dictionary object is empty'
32
32
  return nil
33
33
  end
34
34
 
@@ -55,7 +55,7 @@ module ADIWG
55
55
  end
56
56
  end
57
57
  if intDictionary[:citation].empty?
58
- responseObj[:readerExecutionMessages] << 'Data Dictionary citation is empty'
58
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: data dictionary citation is missing'
59
59
  responseObj[:readerExecutionPass] = false
60
60
  return nil
61
61
  end
@@ -64,13 +64,13 @@ module ADIWG
64
64
  if hDictionary.has_key?('subject')
65
65
  aSubjects = hDictionary['subject']
66
66
  aSubjects.each do |item|
67
- if item != ''
67
+ unless item == ''
68
68
  intDictionary[:subjects] << item
69
69
  end
70
70
  end
71
71
  end
72
72
  if intDictionary[:subjects].empty?
73
- responseObj[:readerExecutionMessages] << 'Data Dictionary subject is missing'
73
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: data dictionary subject is missing'
74
74
  responseObj[:readerExecutionPass] = false
75
75
  return nil
76
76
  end
@@ -79,7 +79,7 @@ module ADIWG
79
79
  if hDictionary.has_key?('recommendedUse')
80
80
  aUses = hDictionary['recommendedUse']
81
81
  aUses.each do |item|
82
- if item != ''
82
+ unless item == ''
83
83
  intDictionary[:recommendedUses] << item
84
84
  end
85
85
  end
@@ -107,7 +107,7 @@ module ADIWG
107
107
  end
108
108
  end
109
109
  if intDictionary[:responsibleParty].empty?
110
- responseObj[:readerExecutionMessages] << 'Data Dictionary responsible party is empty'
110
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: data dictionary responsible party is missing'
111
111
  responseObj[:readerExecutionPass] = false
112
112
  return nil
113
113
  end
@@ -119,6 +119,8 @@ module ADIWG
119
119
  s = hDictionary['dictionaryFunctionalLanguage']
120
120
  elsif hDictionary.has_key?('dictionaryFormat')
121
121
  s = hDictionary['dictionaryFormat']
122
+ responseObj[:readerExecutionMessages] <<
123
+ 'WARNING: mdJson reader: data dictionary dictionaryFormat is deprecated, use dictionaryFunctionalLanguage'
122
124
  end
123
125
  unless s.nil? || s == ''
124
126
  intDictionary[:dictionaryFunctionalLanguage] = s
@@ -2,73 +2,73 @@
2
2
  # Reader - ADIwg JSON data structure
3
3
 
4
4
  # History:
5
- # Stan Smith 2016-10-12 original script
5
+ # Stan Smith 2018-02-18 refactored error and warning messaging
6
+ # Stan Smith 2016-10-12 original script
6
7
 
7
8
  require 'adiwg/mdtranslator/internal/module_dateTimeFun'
8
9
 
9
10
  module ADIWG
10
- module Mdtranslator
11
- module Readers
12
- module MdJson
11
+ module Mdtranslator
12
+ module Readers
13
+ module MdJson
13
14
 
14
- module Date
15
+ module Date
15
16
 
16
- def self.unpack(hDate, responseObj)
17
+ def self.unpack(hDate, responseObj)
17
18
 
18
- # return nil object if input is empty
19
- if hDate.empty?
20
- responseObj[:readerExecutionMessages] << 'Date object is empty'
21
- responseObj[:readerExecutionPass] = false
22
- return nil
23
- end
19
+ # return nil object if input is empty
20
+ if hDate.empty?
21
+ responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: date object is empty'
22
+ return nil
23
+ end
24
24
 
25
- # instance classes needed in script
26
- intMetadataClass = InternalMetadata.new
27
- intDate = intMetadataClass.newDate
25
+ # instance classes needed in script
26
+ intMetadataClass = InternalMetadata.new
27
+ intDate = intMetadataClass.newDate
28
28
 
29
- # date - date (required)
30
- # if dateTimeFromString fails, [0] = nil; [1] = 'ERROR'
31
- if hDate.has_key?('date') && hDate['date'] != ''
32
- aDateTimeReturn = AdiwgDateTimeFun.dateTimeFromString(hDate['date'])
33
- if aDateTimeReturn[1] == 'ERROR'
34
- responseObj[:readerExecutionMessages] << 'Date string is invalid'
35
- responseObj[:readerExecutionPass] = false
36
- return nil
37
- else
38
- intDate[:date] = aDateTimeReturn[0]
39
- intDate[:dateResolution] = aDateTimeReturn[1]
40
- end
41
- else
42
- responseObj[:readerExecutionMessages] << 'Date string is missing'
43
- responseObj[:readerExecutionPass] = false
44
- return nil
45
- end
29
+ # date - date (required)
30
+ # if dateTimeFromString fails, [0] = nil; [1] = 'ERROR'
31
+ if hDate.has_key?('date') && hDate['date'] != ''
32
+ aDateTimeReturn = AdiwgDateTimeFun.dateTimeFromString(hDate['date'])
33
+ if aDateTimeReturn[1] == 'ERROR'
34
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: date string is invalid'
35
+ responseObj[:readerExecutionPass] = false
36
+ return nil
37
+ else
38
+ intDate[:date] = aDateTimeReturn[0]
39
+ intDate[:dateResolution] = aDateTimeReturn[1]
40
+ end
41
+ else
42
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: date string is missing'
43
+ responseObj[:readerExecutionPass] = false
44
+ return nil
45
+ end
46
46
 
47
- # date - date type (required)
48
- if hDate.has_key?('dateType')
49
- intDate[:dateType] = hDate['dateType']
50
- end
51
- if intDate[:dateType].nil? || intDate[:dateType] == ''
52
- responseObj[:readerExecutionMessages] << 'Date attribute dateType is missing'
53
- responseObj[:readerExecutionPass] = false
54
- return nil
55
- end
47
+ # date - date type (required)
48
+ if hDate.has_key?('dateType')
49
+ intDate[:dateType] = hDate['dateType']
50
+ end
51
+ if intDate[:dateType].nil? || intDate[:dateType] == ''
52
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: date type is missing'
53
+ responseObj[:readerExecutionPass] = false
54
+ return nil
55
+ end
56
56
 
57
- # date - description
58
- if hDate.has_key?('description')
59
- s = hDate['description']
60
- unless s == ''
61
- intDate[:description] = s
62
- end
63
- end
57
+ # date - description
58
+ if hDate.has_key?('description')
59
+ s = hDate['description']
60
+ unless s == ''
61
+ intDate[:description] = s
62
+ end
63
+ end
64
64
 
65
- return intDate
65
+ return intDate
66
66
 
67
- end
68
-
69
- end
67
+ end
70
68
 
71
69
  end
72
- end
73
- end
70
+
71
+ end
72
+ end
73
+ end
74
74
  end
@@ -2,53 +2,53 @@
2
2
  # Reader - ADIwg JSON V1 to internal data structure
3
3
 
4
4
  # History:
5
- # Stan Smith 2016-10-05 refactored for mdJson 2.0
6
- # Stan Smith 2014-12-15 refactored to handle namespacing readers and writers
7
- # Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
8
- # Stan Smith 2015-07-14 refactored to remove global namespace constants
5
+ # Stan Smith 2018-02-18 refactored error and warning messaging
6
+ # Stan Smith 2016-10-05 refactored for mdJson 2.0
7
+ # Stan Smith 2014-12-15 refactored to handle namespacing readers and writers
8
+ # Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
9
+ # Stan Smith 2015-07-14 refactored to remove global namespace constants
9
10
  # Stan Smith 2013-12-11 original script
10
11
 
11
12
  require 'adiwg/mdtranslator/internal/module_dateTimeFun'
12
13
 
13
14
  module ADIWG
14
- module Mdtranslator
15
- module Readers
16
- module MdJson
15
+ module Mdtranslator
16
+ module Readers
17
+ module MdJson
17
18
 
18
- module DateTime
19
+ module DateTime
19
20
 
20
- def self.unpack(sDateTime, responseObj)
21
+ def self.unpack(sDateTime, responseObj)
21
22
 
22
- # return nil object if input is empty
23
- if sDateTime == ''
24
- responseObj[:readerExecutionMessages] << 'DateTime string is empty'
25
- responseObj[:readerExecutionPass] = false
26
- return nil
27
- end
23
+ # return nil object if input is empty
24
+ if sDateTime == ''
25
+ responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: dateTime string is empty'
26
+ return nil
27
+ end
28
28
 
29
- # instance classes needed in script
30
- intMetadataClass = InternalMetadata.new
31
- intDateTime = intMetadataClass.newDateTime
29
+ # instance classes needed in script
30
+ intMetadataClass = InternalMetadata.new
31
+ intDateTime = intMetadataClass.newDateTime
32
32
 
33
- # dateTime - dateTime (required)
34
- # if dateTimeFromString fails, [0] = nil; [1] = 'ERROR'
35
- aDateTimeReturn = AdiwgDateTimeFun.dateTimeFromString(sDateTime)
36
- if aDateTimeReturn[1] == 'ERROR'
37
- responseObj[:readerExecutionMessages] << 'DateTime string is invalid'
38
- responseObj[:readerExecutionPass] = false
39
- return nil
40
- else
41
- intDateTime[:dateTime] = aDateTimeReturn[0]
42
- intDateTime[:dateResolution] = aDateTimeReturn[1]
43
- end
33
+ # dateTime - dateTime (required)
34
+ # if dateTimeFromString fails, [0] = nil; [1] = 'ERROR'
35
+ aDateTimeReturn = AdiwgDateTimeFun.dateTimeFromString(sDateTime)
36
+ if aDateTimeReturn[1] == 'ERROR'
37
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: dateTime string is invalid'
38
+ responseObj[:readerExecutionPass] = false
39
+ return nil
40
+ else
41
+ intDateTime[:dateTime] = aDateTimeReturn[0]
42
+ intDateTime[:dateResolution] = aDateTimeReturn[1]
43
+ end
44
44
 
45
- return intDateTime
45
+ return intDateTime
46
46
 
47
- end
48
-
49
- end
47
+ end
50
48
 
51
49
  end
52
- end
53
- end
50
+
51
+ end
52
+ end
53
+ end
54
54
  end
@@ -2,86 +2,86 @@
2
2
  # Reader - ADIwg JSON to internal dimension
3
3
 
4
4
  # History:
5
+ # Stan Smith 2018-02-18 refactored error and warning messaging
5
6
  # Stan Smith 2016-10-18 original script
6
7
 
7
8
  require_relative 'module_measure'
8
9
 
9
10
  module ADIWG
10
- module Mdtranslator
11
- module Readers
12
- module MdJson
13
-
14
- module Dimension
15
-
16
- def self.unpack(hDimension, responseObj)
17
-
18
- # return nil object if input is empty
19
- if hDimension.empty?
20
- responseObj[:readerExecutionMessages] << 'Dimension object is empty'
21
- responseObj[:readerExecutionPass] = false
22
- return nil
23
- end
24
-
25
- # instance classes needed in script
26
- intMetadataClass = InternalMetadata.new
27
- intDimension = intMetadataClass.newDimension
28
-
29
- # dimension - dimension type (required)
30
- if hDimension.has_key?('dimensionType')
31
- if hDimension['dimensionType'] != ''
32
- intDimension[:dimensionType] = hDimension['dimensionType']
33
- end
34
- end
35
- if intDimension[:dimensionType].nil?
36
- responseObj[:readerExecutionMessages] << 'Dimension is missing dimensionType'
37
- responseObj[:readerExecutionPass] = false
38
- return nil
39
- end
40
-
41
- # dimension - dimension size (required)
42
- if hDimension.has_key?('dimensionSize')
43
- if hDimension['dimensionSize'] != ''
44
- intDimension[:dimensionSize] = hDimension['dimensionSize']
45
- end
46
- end
47
- if intDimension[:dimensionSize].nil?
48
- responseObj[:readerExecutionMessages] << 'Dimension is missing dimensionSize'
49
- responseObj[:readerExecutionPass] = false
50
- return nil
51
- end
52
-
53
- # dimension - resolution {measure}
54
- if hDimension.has_key?('resolution')
55
- hObject = hDimension['resolution']
56
- unless hObject.empty?
57
- hReturn = Measure.unpack(hObject, responseObj)
58
- unless hReturn.nil?
59
- intDimension[:resolution] = hReturn
60
- end
61
- end
11
+ module Mdtranslator
12
+ module Readers
13
+ module MdJson
14
+
15
+ module Dimension
16
+
17
+ def self.unpack(hDimension, responseObj)
18
+
19
+ # return nil object if input is empty
20
+ if hDimension.empty?
21
+ responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: spatial representation dimension object is empty'
22
+ return nil
23
+ end
24
+
25
+ # instance classes needed in script
26
+ intMetadataClass = InternalMetadata.new
27
+ intDimension = intMetadataClass.newDimension
28
+
29
+ # dimension - dimension type (required)
30
+ if hDimension.has_key?('dimensionType')
31
+ unless hDimension['dimensionType'] == ''
32
+ intDimension[:dimensionType] = hDimension['dimensionType']
33
+ end
34
+ end
35
+ if intDimension[:dimensionType].nil?
36
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: spatial representation dimension type is missing'
37
+ responseObj[:readerExecutionPass] = false
38
+ return nil
39
+ end
40
+
41
+ # dimension - dimension size (required)
42
+ if hDimension.has_key?('dimensionSize')
43
+ unless hDimension['dimensionSize'] == ''
44
+ intDimension[:dimensionSize] = hDimension['dimensionSize']
45
+ end
46
+ end
47
+ if intDimension[:dimensionSize].nil?
48
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: spatial representation dimension size is missing'
49
+ responseObj[:readerExecutionPass] = false
50
+ return nil
51
+ end
52
+
53
+ # dimension - resolution {measure}
54
+ if hDimension.has_key?('resolution')
55
+ hObject = hDimension['resolution']
56
+ unless hObject.empty?
57
+ hReturn = Measure.unpack(hObject, responseObj)
58
+ unless hReturn.nil?
59
+ intDimension[:resolution] = hReturn
62
60
  end
61
+ end
62
+ end
63
63
 
64
- # dimension - dimension title
65
- if hDimension.has_key?('dimensionTitle')
66
- if hDimension['dimensionTitle'] != ''
67
- intDimension[:dimensionTitle] = hDimension['dimensionTitle']
68
- end
69
- end
70
-
71
- # dimension - dimension description
72
- if hDimension.has_key?('dimensionDescription')
73
- if hDimension['dimensionDescription'] != ''
74
- intDimension[:dimensionDescription] = hDimension['dimensionDescription']
75
- end
76
- end
64
+ # dimension - dimension title
65
+ if hDimension.has_key?('dimensionTitle')
66
+ unless hDimension['dimensionTitle'] == ''
67
+ intDimension[:dimensionTitle] = hDimension['dimensionTitle']
68
+ end
69
+ end
77
70
 
78
- return intDimension
71
+ # dimension - dimension description
72
+ if hDimension.has_key?('dimensionDescription')
73
+ unless hDimension['dimensionDescription'] == ''
74
+ intDimension[:dimensionDescription] = hDimension['dimensionDescription']
75
+ end
76
+ end
79
77
 
80
- end
78
+ return intDimension
81
79
 
82
- end
80
+ end
83
81
 
84
82
  end
85
- end
86
- end
83
+
84
+ end
85
+ end
86
+ end
87
87
  end
@@ -2,6 +2,7 @@
2
2
  # Reader - ADIwg JSON to internal data structure
3
3
 
4
4
  # History:
5
+ # Stan Smith 2018-02-18 refactored error and warning messaging
5
6
  # Stan Smith 2018-01-29 add liabilityStatement
6
7
  # Stan Smith 2016-10-21 original script
7
8
 
@@ -18,8 +19,7 @@ module ADIWG
18
19
 
19
20
  # return nil object if input is empty
20
21
  if hDistribution.empty?
21
- responseObj[:readerExecutionMessages] << 'Distribution object is empty'
22
- responseObj[:readerExecutionPass] = false
22
+ responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: distribution object is empty'
23
23
  return nil
24
24
  end
25
25
 
@@ -27,16 +27,19 @@ module ADIWG
27
27
  intMetadataClass = InternalMetadata.new
28
28
  intDistribution = intMetadataClass.newDistribution
29
29
 
30
+ haveDist = false
31
+
30
32
  # distribution - description
31
33
  if hDistribution.has_key?('description')
32
- if hDistribution['description'] != ''
34
+ unless hDistribution['description'] == ''
33
35
  intDistribution[:description] = hDistribution['description']
36
+ haveDist = true
34
37
  end
35
38
  end
36
39
 
37
40
  # distribution - liability statement
38
41
  if hDistribution.has_key?('liabilityStatement')
39
- if hDistribution['liabilityStatement'] != ''
42
+ unless hDistribution['liabilityStatement'] == ''
40
43
  intDistribution[:liabilityStatement] = hDistribution['liabilityStatement']
41
44
  end
42
45
  end
@@ -48,10 +51,18 @@ module ADIWG
48
51
  hReturn = Distributor.unpack(item, responseObj)
49
52
  unless hReturn.nil?
50
53
  intDistribution[:distributor] << hReturn
54
+ haveDist = true
51
55
  end
52
56
  end
53
57
  end
54
58
 
59
+ # error messages
60
+ unless haveDist
61
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: distribution must have description or distributor'
62
+ responseObj[:readerExecutionPass] = false
63
+ return nil
64
+ end
65
+
55
66
  return intDistribution
56
67
 
57
68
  end
@@ -2,77 +2,77 @@
2
2
  # Reader - ADIwg JSON to internal data structure
3
3
 
4
4
  # History:
5
- # Stan Smith 2016-10-21 original script
5
+ # Stan Smith 2018-02-18 refactored error and warning messaging
6
+ # Stan Smith 2016-10-21 original script
6
7
 
7
8
  require_relative 'module_responsibleParty'
8
9
  require_relative 'module_orderProcess'
9
10
  require_relative 'module_transferOption'
10
11
 
11
12
  module ADIWG
12
- module Mdtranslator
13
- module Readers
14
- module MdJson
13
+ module Mdtranslator
14
+ module Readers
15
+ module MdJson
15
16
 
16
- module Distributor
17
+ module Distributor
17
18
 
18
- def self.unpack(hDistrib, responseObj)
19
+ def self.unpack(hDistrib, responseObj)
19
20
 
20
- # return nil object if input is empty
21
- if hDistrib.empty?
22
- responseObj[:readerExecutionMessages] << 'Distributor object is empty'
23
- responseObj[:readerExecutionPass] = false
24
- return nil
25
- end
21
+ # return nil object if input is empty
22
+ if hDistrib.empty?
23
+ responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: distributor object is empty'
24
+ return nil
25
+ end
26
26
 
27
- # instance classes needed in script
28
- intMetadataClass = InternalMetadata.new
29
- intDistrib = intMetadataClass.newDistributor
27
+ # instance classes needed in script
28
+ intMetadataClass = InternalMetadata.new
29
+ intDistrib = intMetadataClass.newDistributor
30
30
 
31
- # distributor - contact {responsibleParty} (required)
32
- if hDistrib.has_key?('contact')
33
- hObject = hDistrib['contact']
34
- unless hObject.empty?
35
- hReturn = ResponsibleParty.unpack(hObject, responseObj)
36
- unless hReturn.nil?
37
- intDistrib[:contact] = hReturn
38
- end
39
- end
40
- end
41
- if intDistrib[:contact].empty?
42
- responseObj[:readerExecutionMessages] << 'Distributor object is missing contact'
43
- responseObj[:readerExecutionPass] = false
44
- return nil
31
+ # distributor - contact {responsibleParty} (required)
32
+ if hDistrib.has_key?('contact')
33
+ hObject = hDistrib['contact']
34
+ unless hObject.empty?
35
+ hReturn = ResponsibleParty.unpack(hObject, responseObj)
36
+ unless hReturn.nil?
37
+ intDistrib[:contact] = hReturn
45
38
  end
39
+ end
40
+ end
41
+ if intDistrib[:contact].empty?
42
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: distributor contact is missing'
43
+ responseObj[:readerExecutionPass] = false
44
+ return nil
45
+ end
46
46
 
47
- # distributor - order process [orderProcess]
48
- if hDistrib.has_key?('orderProcess')
49
- aItems = hDistrib['orderProcess']
50
- aItems.each do |item|
51
- hReturn = OrderProcess.unpack(item, responseObj)
52
- unless hReturn.nil?
53
- intDistrib[:orderProcess] << hReturn
54
- end
55
- end
47
+ # distributor - order process [orderProcess]
48
+ if hDistrib.has_key?('orderProcess')
49
+ aItems = hDistrib['orderProcess']
50
+ aItems.each do |item|
51
+ hReturn = OrderProcess.unpack(item, responseObj)
52
+ unless hReturn.nil?
53
+ intDistrib[:orderProcess] << hReturn
56
54
  end
55
+ end
56
+ end
57
57
 
58
- # distributor - transfer options [transferOption]
59
- if hDistrib.has_key?('transferOption')
60
- aItemss = hDistrib['transferOption']
61
- aItemss.each do |item|
62
- hReturn = TransferOption.unpack(item, responseObj)
63
- unless hReturn.nil?
64
- intDistrib[:transferOptions] << hReturn
65
- end
66
- end
58
+ # distributor - transfer options [transferOption]
59
+ if hDistrib.has_key?('transferOption')
60
+ aItemss = hDistrib['transferOption']
61
+ aItemss.each do |item|
62
+ hReturn = TransferOption.unpack(item, responseObj)
63
+ unless hReturn.nil?
64
+ intDistrib[:transferOptions] << hReturn
67
65
  end
66
+ end
67
+ end
68
68
 
69
- return intDistrib
69
+ return intDistrib
70
70
 
71
- end
72
-
73
- end
71
+ end
74
72
 
75
73
  end
76
- end
77
- end
74
+
75
+ end
76
+ end
77
+ end
78
78
  end