adiwg-mdtranslator 1.4.0 → 2.0.0rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (525) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +1 -3
  3. data/.travis.yml +4 -3
  4. data/README.md +1 -3
  5. data/Rakefile +5 -1
  6. data/adiwg-mdtranslator.gemspec +5 -5
  7. data/bin/mdtranslator +3 -205
  8. data/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +600 -316
  9. data/lib/adiwg/mdtranslator/internal/module_coordinates.rb +123 -7
  10. data/lib/adiwg/mdtranslator/internal/module_dateTimeFun.rb +45 -0
  11. data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader.rb +83 -178
  12. data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_validator.rb +21 -22
  13. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_additionalDocumentation.rb +77 -0
  14. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_address.rb +101 -0
  15. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_allocation.rb +84 -0
  16. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_associatedResource.rb +111 -0
  17. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_attribute.rb +224 -0
  18. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_attributeGroup.rb +63 -0
  19. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_boundingBox.rb +95 -0
  20. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_citation.rb +164 -0
  21. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_constraint.rb +163 -0
  22. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_contact.rb +172 -0
  23. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_coverageDescription.rb +96 -0
  24. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataDictionary.rb +151 -0
  25. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_date.rb +74 -0
  26. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_v1 → modules}/module_dateTime.rb +19 -5
  27. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dimension.rb +87 -0
  28. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_distribution.rb +56 -0
  29. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_distributor.rb +78 -0
  30. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_domain.rb +95 -0
  31. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_domainItem.rb +70 -0
  32. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_duration.rb +112 -0
  33. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entity.rb +135 -0
  34. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityAttribute.rb +130 -0
  35. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityForeignKey.rb +78 -0
  36. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityIndex.rb +72 -0
  37. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_extent.rb +83 -0
  38. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_featureCollection.rb +87 -0
  39. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_format.rb +68 -0
  40. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_funding.rb +67 -0
  41. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geoJson.rb +70 -0
  42. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geographicExtent.rb +98 -0
  43. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryCollection.rb +87 -0
  44. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryFeature.rb +112 -0
  45. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryObject.rb +70 -0
  46. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryProperties.rb +79 -0
  47. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_georectifiedRepresentation.rb +113 -0
  48. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_georeferenceableRepresentation.rb +99 -0
  49. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_gmlIdentifier.rb +55 -0
  50. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_graphic.rb +96 -0
  51. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_gridRepresentation.rb +79 -0
  52. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_identifier.rb +87 -0
  53. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_imageDescription.rb +120 -0
  54. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_keyword.rb +83 -0
  55. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_keywordObject.rb +55 -0
  56. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_legalConstraint.rb +77 -0
  57. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_lineage.rb +104 -0
  58. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_locale.rb +66 -0
  59. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_maintenance.rb +93 -0
  60. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_mdJson.rb +136 -0
  61. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_measure.rb +75 -0
  62. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_medium.rb +105 -0
  63. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadata.rb +131 -0
  64. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadataInfo.rb +157 -0
  65. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadataRepository.rb +53 -0
  66. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_onlineResource.rb +82 -0
  67. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_orderProcess.rb +68 -0
  68. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_party.rb +79 -0
  69. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_phone.rb +68 -0
  70. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_processStep.rb +113 -0
  71. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_releasability.rb +71 -0
  72. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceInfo.rb +364 -0
  73. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceType.rb +55 -0
  74. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceUsage.rb +117 -0
  75. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_responsibleParty.rb +91 -0
  76. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_schema.rb +56 -0
  77. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_scope.rb +72 -0
  78. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_scopeDescription.rb +73 -0
  79. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_securityConstraint.rb +72 -0
  80. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_series.rb +57 -0
  81. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_source.rb +123 -0
  82. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialReference.rb +65 -0
  83. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialRepresentation.rb +96 -0
  84. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialResolution.rb +77 -0
  85. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomicClassification.rb +87 -0
  86. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomicSystem.rb +60 -0
  87. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomy.rb +138 -0
  88. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_temporalExtent.rb +70 -0
  89. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timeInstant.rb +87 -0
  90. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timeInterval.rb +69 -0
  91. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timePeriod.rb +120 -0
  92. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_transferOption.rb +95 -0
  93. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_vectorObject.rb +55 -0
  94. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_vectorRepresentation.rb +55 -0
  95. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_verticalExtent.rb +81 -0
  96. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_voucher.rb +64 -0
  97. data/lib/adiwg/mdtranslator/readers/mdJson/readme.md +3 -9
  98. data/lib/adiwg/mdtranslator/readers/mdJson/version.rb +14 -0
  99. data/lib/adiwg/mdtranslator/readers/mdReaders.rb +36 -30
  100. data/lib/adiwg/mdtranslator/readers/sbJson/sbJson_reader.rb +39 -40
  101. data/lib/adiwg/mdtranslator/version.rb +38 -29
  102. data/lib/adiwg/mdtranslator/writers/html/html_writer.rb +28 -25
  103. data/lib/adiwg/mdtranslator/writers/html/readme.md +3 -9
  104. data/lib/adiwg/mdtranslator/writers/html/sections/html_additionalDocumentation.rb +35 -34
  105. data/lib/adiwg/mdtranslator/writers/html/sections/html_allocation.rb +71 -0
  106. data/lib/adiwg/mdtranslator/writers/html/sections/html_associatedResource.rb +51 -51
  107. data/lib/adiwg/mdtranslator/writers/html/sections/html_attribute.rb +189 -0
  108. data/lib/adiwg/mdtranslator/writers/html/sections/html_attributeGroup.rb +51 -0
  109. data/lib/adiwg/mdtranslator/writers/html/sections/html_body.rb +275 -259
  110. data/lib/adiwg/mdtranslator/writers/html/sections/html_bodyScript.js +275 -150
  111. data/lib/adiwg/mdtranslator/writers/html/sections/html_boundingBox.rb +51 -0
  112. data/lib/adiwg/mdtranslator/writers/html/sections/html_citation.rb +142 -82
  113. data/lib/adiwg/mdtranslator/writers/html/sections/html_constraint.rb +118 -0
  114. data/lib/adiwg/mdtranslator/writers/html/sections/html_contact.rb +166 -94
  115. data/lib/adiwg/mdtranslator/writers/html/sections/html_coverageInfo.rb +57 -64
  116. data/lib/adiwg/mdtranslator/writers/html/sections/html_dataDictionary.rb +102 -96
  117. data/lib/adiwg/mdtranslator/writers/html/sections/html_date.rb +42 -0
  118. data/lib/adiwg/mdtranslator/writers/html/sections/html_datetime.rb +42 -0
  119. data/lib/adiwg/mdtranslator/writers/html/sections/html_dimension.rb +50 -52
  120. data/lib/adiwg/mdtranslator/writers/html/sections/html_distribution.rb +49 -0
  121. data/lib/adiwg/mdtranslator/writers/html/sections/html_distributor.rb +48 -44
  122. data/lib/adiwg/mdtranslator/writers/html/sections/html_document.rb +63 -0
  123. data/lib/adiwg/mdtranslator/writers/html/sections/html_domain.rb +53 -62
  124. data/lib/adiwg/mdtranslator/writers/html/sections/html_domainItem.rb +49 -0
  125. data/lib/adiwg/mdtranslator/writers/html/sections/html_duration.rb +68 -0
  126. data/lib/adiwg/mdtranslator/writers/html/sections/html_entity.rb +99 -122
  127. data/lib/adiwg/mdtranslator/writers/html/sections/html_entityAttribute.rb +94 -100
  128. data/lib/adiwg/mdtranslator/writers/html/sections/html_entityForeignKey.rb +55 -0
  129. data/lib/adiwg/mdtranslator/writers/html/sections/html_entityIndex.rb +39 -39
  130. data/lib/adiwg/mdtranslator/writers/html/sections/html_extent.rb +53 -86
  131. data/lib/adiwg/mdtranslator/writers/html/sections/html_feature.rb +97 -0
  132. data/lib/adiwg/mdtranslator/writers/html/sections/html_featureCollection.rb +82 -0
  133. data/lib/adiwg/mdtranslator/writers/html/sections/html_featureProperties.rb +71 -0
  134. data/lib/adiwg/mdtranslator/writers/html/sections/html_format.rb +46 -34
  135. data/lib/adiwg/mdtranslator/writers/html/sections/html_funding.rb +51 -0
  136. data/lib/adiwg/mdtranslator/writers/html/sections/html_geographicElement.rb +61 -194
  137. data/lib/adiwg/mdtranslator/writers/html/sections/html_geographicExtent.rb +112 -0
  138. data/lib/adiwg/mdtranslator/writers/html/sections/html_geometryCollection.rb +78 -0
  139. data/lib/adiwg/mdtranslator/writers/html/sections/html_geometryObject.rb +46 -0
  140. data/lib/adiwg/mdtranslator/writers/html/sections/html_georectifiedRepresentation.rb +93 -0
  141. data/lib/adiwg/mdtranslator/writers/html/sections/html_georeferenceableRepresentation.rb +78 -0
  142. data/lib/adiwg/mdtranslator/writers/html/sections/html_graphic.rb +75 -0
  143. data/lib/adiwg/mdtranslator/writers/html/sections/html_gridRepresentation.rb +61 -0
  144. data/lib/adiwg/mdtranslator/writers/html/sections/html_head.rb +47 -60
  145. data/lib/adiwg/mdtranslator/writers/html/sections/html_identifier.rb +73 -0
  146. data/lib/adiwg/mdtranslator/writers/html/sections/html_imageInfo.rb +92 -110
  147. data/lib/adiwg/mdtranslator/writers/html/sections/html_inlineCss.css +16 -8
  148. data/lib/adiwg/mdtranslator/writers/html/sections/html_keyword.rb +47 -45
  149. data/lib/adiwg/mdtranslator/writers/html/sections/html_legalConstraint.rb +41 -48
  150. data/lib/adiwg/mdtranslator/writers/html/sections/html_lineage.rb +87 -0
  151. data/lib/adiwg/mdtranslator/writers/html/sections/html_locale.rb +47 -0
  152. data/lib/adiwg/mdtranslator/writers/html/sections/html_maintenance.rb +96 -0
  153. data/lib/adiwg/mdtranslator/writers/html/sections/html_measure.rb +47 -0
  154. data/lib/adiwg/mdtranslator/writers/html/sections/html_medium.rb +74 -52
  155. data/lib/adiwg/mdtranslator/writers/html/sections/html_metadataInfo.rb +162 -131
  156. data/lib/adiwg/mdtranslator/writers/html/sections/html_metadataRepository.rb +40 -0
  157. data/lib/adiwg/mdtranslator/writers/html/sections/html_onlineResource.rb +52 -55
  158. data/lib/adiwg/mdtranslator/writers/html/sections/html_orderProcess.rb +53 -55
  159. data/lib/adiwg/mdtranslator/writers/html/sections/html_processStep.rb +89 -57
  160. data/lib/adiwg/mdtranslator/writers/html/sections/html_releasability.rb +63 -0
  161. data/lib/adiwg/mdtranslator/writers/html/sections/html_resolution.rb +46 -38
  162. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceInfo.rb +402 -291
  163. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceType.rb +31 -0
  164. data/lib/adiwg/mdtranslator/writers/html/sections/html_responsibility.rb +81 -0
  165. data/lib/adiwg/mdtranslator/writers/html/sections/html_scope.rb +60 -0
  166. data/lib/adiwg/mdtranslator/writers/html/sections/html_scopeDescription.rb +54 -0
  167. data/lib/adiwg/mdtranslator/writers/html/sections/html_securityConstraint.rb +46 -47
  168. data/lib/adiwg/mdtranslator/writers/html/sections/html_source.rb +123 -0
  169. data/lib/adiwg/mdtranslator/writers/html/sections/html_spatialReference.rb +43 -0
  170. data/lib/adiwg/mdtranslator/writers/html/sections/html_spatialRepresentation.rb +77 -0
  171. data/lib/adiwg/mdtranslator/writers/html/sections/html_taxonomy.rb +138 -90
  172. data/lib/adiwg/mdtranslator/writers/html/sections/html_taxonomyClass.rb +63 -50
  173. data/lib/adiwg/mdtranslator/writers/html/sections/html_temporalExtent.rb +66 -0
  174. data/lib/adiwg/mdtranslator/writers/html/sections/html_timeInstant.rb +60 -42
  175. data/lib/adiwg/mdtranslator/writers/html/sections/html_timeInterval.rb +40 -0
  176. data/lib/adiwg/mdtranslator/writers/html/sections/html_timePeriod.rb +88 -43
  177. data/lib/adiwg/mdtranslator/writers/html/sections/html_transferOption.rb +68 -50
  178. data/lib/adiwg/mdtranslator/writers/html/sections/html_usage.rb +118 -0
  179. data/lib/adiwg/mdtranslator/writers/html/sections/html_vectorObject.rb +40 -0
  180. data/lib/adiwg/mdtranslator/writers/html/sections/html_vectorRepresentation.rb +46 -0
  181. data/lib/adiwg/mdtranslator/writers/html/sections/html_verticalExtent.rb +62 -0
  182. data/lib/adiwg/mdtranslator/writers/html/version.rb +12 -11
  183. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_address.rb +70 -75
  184. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_baseUnit.rb +3 -3
  185. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_codelist.rb +14 -13
  186. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_contact.rb +50 -34
  187. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_conventionalUnit.rb +3 -3
  188. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_definitionUnit.rb +3 -3
  189. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_derivedUnit.rb +3 -3
  190. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_fcFeatureCatalogue.rb +205 -0
  191. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_featureAttribute.rb +39 -38
  192. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_featureConstraint.rb +9 -10
  193. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_featureType.rb +48 -40
  194. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_listedValue.rb +22 -20
  195. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_locale.rb +69 -0
  196. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_multiplicity.rb +24 -17
  197. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_onlineResource.rb +33 -29
  198. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_phone.rb +83 -0
  199. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_responsibleParty.rb +77 -64
  200. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_unitsOfMeasure.rb +20 -20
  201. data/lib/adiwg/mdtranslator/writers/iso19110/iso19110_writer.rb +21 -32
  202. data/lib/adiwg/mdtranslator/writers/iso19110/readme.md +3 -8
  203. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_address.rb +70 -74
  204. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_aggregateInformation.rb +30 -32
  205. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_attributeGroup.rb +70 -0
  206. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_baseUnit.rb +5 -5
  207. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_boundingBox.rb +77 -0
  208. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_browseGraphic.rb +26 -24
  209. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_citation.rb +111 -100
  210. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_codelist.rb +14 -13
  211. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_contact.rb +50 -34
  212. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_conventionalUnit.rb +5 -5
  213. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_coverageDescription.rb +99 -0
  214. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dataIdentification.rb +195 -270
  215. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dataQuality.rb +26 -35
  216. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_date.rb +31 -38
  217. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_definitionUnit.rb +5 -5
  218. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_derivedUnit.rb +5 -5
  219. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dimension.rb +26 -23
  220. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_distribution.rb +19 -16
  221. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_distributor.rb +51 -66
  222. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_enumerationList.rb +12 -12
  223. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/{class_metadataExtension.rb → class_extension.rb} +94 -67
  224. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_extent.rb +43 -59
  225. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_feature.rb +67 -0
  226. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_featureCollection.rb +56 -0
  227. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_featureProperties.rb +65 -0
  228. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_format.rb +48 -27
  229. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_fraction.rb +40 -0
  230. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gcoDateTime.rb +48 -0
  231. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geographicElement.rb +55 -26
  232. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geographicExtent.rb +82 -0
  233. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geometricObjects.rb +56 -0
  234. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geometryCollection.rb +88 -0
  235. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_georectified.rb +121 -0
  236. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_georeferenceable.rb +86 -0
  237. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gmlIdentifier.rb +32 -0
  238. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_grid.rb +73 -0
  239. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gridRepresentation.rb +36 -0
  240. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_hierarchy.rb +58 -0
  241. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_image.rb +144 -0
  242. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_keyword.rb +41 -35
  243. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_legalConstraints.rb +46 -37
  244. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_lineString.rb +45 -51
  245. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_lineage.rb +29 -31
  246. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_locale.rb +21 -17
  247. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_maintenance.rb +119 -0
  248. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_mdBand.rb +121 -0
  249. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/{class_identifier.rb → class_mdIdentifier.rb} +25 -27
  250. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_measure.rb +48 -0
  251. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_medium.rb +66 -42
  252. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_miBand.rb +91 -0
  253. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_miMetadata.rb +352 -0
  254. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiLine.rb +82 -0
  255. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiPoint.rb +82 -0
  256. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiPolygon.rb +82 -0
  257. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_onlineResource.rb +33 -29
  258. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/{class_standardOrderProcess.rb → class_orderProcess.rb} +33 -35
  259. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_phone.rb +83 -0
  260. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_point.rb +46 -51
  261. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_polygon.rb +54 -61
  262. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_processStep.rb +46 -34
  263. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_rangeDimension.rb +73 -0
  264. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_referenceSystem.rb +24 -25
  265. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_resolution.rb +32 -31
  266. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_responsibleParty.rb +75 -65
  267. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_rsIdentifier.rb +86 -0
  268. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_scope.rb +71 -0
  269. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_scopeDescription.rb +54 -0
  270. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_securityConstraints.rb +47 -32
  271. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_series.rb +63 -0
  272. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_source.rb +58 -28
  273. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_spatialRepresentation.rb +64 -0
  274. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/{class_taxonClassification.rb → class_taxonomicClassification.rb} +35 -38
  275. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonomicSystem.rb +49 -0
  276. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonomy.rb +144 -0
  277. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_temporalExtent.rb +15 -28
  278. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_timeInstant.rb +42 -19
  279. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_timePeriod.rb +79 -28
  280. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_transferOptions.rb +91 -0
  281. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_unitsOfMeasure.rb +22 -22
  282. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_usage.rb +70 -28
  283. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_useConstraints.rb +18 -17
  284. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_vectorRepresentation.rb +59 -0
  285. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_verticalExtent.rb +39 -26
  286. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_vouchers.rb +20 -20
  287. data/lib/adiwg/mdtranslator/writers/iso19115_2/iso19115_2_writer.rb +22 -133
  288. data/lib/adiwg/mdtranslator/writers/iso19115_2/readme.md +1 -7
  289. data/lib/adiwg/mdtranslator/writers/mdJson/mdJson_writer.rb +44 -41
  290. data/lib/adiwg/mdtranslator/writers/mdJson/readme.md +3 -9
  291. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_additionalDocumentation.rb +33 -0
  292. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_address.rb +29 -17
  293. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_allocation.rb +32 -0
  294. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_associatedResource.rb +30 -16
  295. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_attribute.rb +48 -22
  296. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_attributeGroup.rb +32 -0
  297. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_boundingBox.rb +30 -0
  298. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_citation.rb +41 -26
  299. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_constraint.rb +40 -23
  300. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_contact.rb +39 -24
  301. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_coverageDescription.rb +37 -0
  302. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_date.rb +42 -0
  303. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dateTime.rb +33 -13
  304. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dictionary.rb +35 -25
  305. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dimension.rb +32 -0
  306. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_distribution.rb +32 -0
  307. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_distributor.rb +34 -0
  308. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_domain.rb +30 -20
  309. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_domainItem.rb +29 -0
  310. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_duration.rb +33 -0
  311. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_entity.rb +35 -32
  312. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_entityAttribute.rb +37 -0
  313. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_entityForeignKey.rb +29 -0
  314. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_entityIndex.rb +29 -0
  315. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_extent.rb +31 -21
  316. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_format.rb +26 -14
  317. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_funding.rb +32 -0
  318. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_geographicExtent.rb +33 -0
  319. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_georectifiedRepresentation.rb +35 -0
  320. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_georeferenceableRepresentation.rb +36 -0
  321. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_graphicOverview.rb +31 -15
  322. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_gridRepresentation.rb +34 -0
  323. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_identifier.rb +33 -0
  324. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_imageDescription.rb +41 -0
  325. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_keyword.rb +28 -14
  326. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_keywordObject.rb +29 -0
  327. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_legalConstraint.rb +29 -0
  328. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_lineageInfo.rb +38 -0
  329. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_locale.rb +25 -14
  330. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_maintenance.rb +37 -0
  331. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_mdJson.rb +54 -0
  332. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_measure.rb +29 -0
  333. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_medium.rb +37 -0
  334. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_metadata.rb +35 -22
  335. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_metadataInfo.rb +39 -29
  336. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_onlineResource.rb +27 -16
  337. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_orderProcess.rb +31 -0
  338. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_party.rb +32 -0
  339. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_phone.rb +25 -14
  340. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_processStep.rb +34 -19
  341. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_releasability.rb +32 -0
  342. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_repository.rb +29 -0
  343. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceInfo.rb +61 -56
  344. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceType.rb +29 -0
  345. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_responsibleParty.rb +29 -13
  346. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_scope.rb +34 -0
  347. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_scopeDescription.rb +31 -0
  348. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_securityConstraint.rb +30 -0
  349. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_series.rb +30 -0
  350. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_source.rb +40 -0
  351. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_spatialReference.rb +30 -0
  352. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_spatialRepresentation.rb +34 -0
  353. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_spatialResolution.rb +30 -0
  354. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_taxonomicClassification.rb +35 -0
  355. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_taxonomicSystem.rb +29 -0
  356. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_taxonomy.rb +36 -26
  357. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_temporalExtent.rb +31 -0
  358. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_timeInstant.rb +33 -0
  359. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_timeInterval.rb +29 -0
  360. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_timePeriod.rb +34 -15
  361. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_transferOption.rb +32 -26
  362. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_usage.rb +33 -17
  363. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_vectorObject.rb +28 -0
  364. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_vectorRepresentation.rb +31 -0
  365. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_verticalExtent.rb +32 -0
  366. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_voucher.rb +29 -0
  367. data/lib/adiwg/mdtranslator/writers/mdJson/version.rb +13 -9
  368. data/lib/adiwg/mdtranslator/writers/mdWriters.rb +36 -28
  369. data/lib/adiwg/mdtranslator.rb +135 -113
  370. data/lib/adiwg/mdtranslator_cli.rb +191 -0
  371. metadata +238 -215
  372. data/lib/adiwg/mdtranslator/internal/module_geoFormat.rb +0 -219
  373. data/lib/adiwg/mdtranslator/internal/module_lineString.rb +0 -18
  374. data/lib/adiwg/mdtranslator/internal/module_point.rb +0 -18
  375. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_additionalDocumentation.rb +0 -64
  376. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_address.rb +0 -91
  377. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_associatedResource.rb +0 -100
  378. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_boundingBox.rb +0 -64
  379. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_browseGraphic.rb +0 -79
  380. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_citation.rb +0 -141
  381. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_classedData.rb +0 -49
  382. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_classedDataItem.rb +0 -53
  383. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_contacts.rb +0 -164
  384. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_coverageInfo.rb +0 -83
  385. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_coverageItem.rb +0 -136
  386. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_dataDictionary.rb +0 -65
  387. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_dataQuality.rb +0 -65
  388. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_descriptiveKeyword.rb +0 -77
  389. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_dictionaryInfo.rb +0 -82
  390. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_digitalTransferOption.rb +0 -80
  391. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_dimension.rb +0 -81
  392. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_distributionInfo.rb +0 -89
  393. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_distributionOrder.rb +0 -62
  394. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_domain.rb +0 -96
  395. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_domainItem.rb +0 -72
  396. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_entity.rb +0 -131
  397. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_entityAttribute.rb +0 -134
  398. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_entityForeignKey.rb +0 -73
  399. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_entityIndex.rb +0 -72
  400. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_extent.rb +0 -75
  401. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_geoCoordSystem.rb +0 -59
  402. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_geoProperties.rb +0 -102
  403. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_geographicElement.rb +0 -189
  404. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_gridInfo.rb +0 -67
  405. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_imageInfo.rb +0 -119
  406. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_legalConstraint.rb +0 -62
  407. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_lineString.rb +0 -37
  408. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_lineage.rb +0 -67
  409. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_locale.rb +0 -57
  410. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_mdJson.rb +0 -68
  411. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_medium.rb +0 -73
  412. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_metadata.rb +0 -90
  413. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_metadataExtension.rb +0 -53
  414. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_metadataInfo.rb +0 -152
  415. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_onlineResource.rb +0 -84
  416. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_phone.rb +0 -81
  417. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_point.rb +0 -37
  418. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_polygon.rb +0 -67
  419. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_processStep.rb +0 -88
  420. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resolution.rb +0 -59
  421. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resourceFormat.rb +0 -57
  422. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resourceIdentifier.rb +0 -85
  423. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resourceInfo.rb +0 -374
  424. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resourceMaintenance.rb +0 -63
  425. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resourceSpecificUsage.rb +0 -63
  426. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_responsibleParty.rb +0 -68
  427. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_securityConstraint.rb +0 -65
  428. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_sensorInfo.rb +0 -69
  429. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_source.rb +0 -65
  430. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_spatialReference.rb +0 -61
  431. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_taxonClass.rb +0 -56
  432. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_taxonomy.rb +0 -96
  433. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_temporalElement.rb +0 -84
  434. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_timeInstant.rb +0 -58
  435. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_timePeriod.rb +0 -66
  436. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_verticalElement.rb +0 -66
  437. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_voucher.rb +0 -51
  438. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/version.rb +0 -19
  439. data/lib/adiwg/mdtranslator/readers/mdJson/validator.rb +0 -43
  440. data/lib/adiwg/mdtranslator/readers/sbJson/sbJson_validator.rb +0 -44
  441. data/lib/adiwg/mdtranslator/writers/html/md_html_writer.rb +0 -59
  442. data/lib/adiwg/mdtranslator/writers/html/sections/html_browseGraphic.rb +0 -59
  443. data/lib/adiwg/mdtranslator/writers/html/sections/html_coverageItem.rb +0 -139
  444. data/lib/adiwg/mdtranslator/writers/html/sections/html_dataLineage.rb +0 -68
  445. data/lib/adiwg/mdtranslator/writers/html/sections/html_dataSource.rb +0 -67
  446. data/lib/adiwg/mdtranslator/writers/html/sections/html_dateTime.rb +0 -41
  447. data/lib/adiwg/mdtranslator/writers/html/sections/html_domainMember.rb +0 -52
  448. data/lib/adiwg/mdtranslator/writers/html/sections/html_gridInfo.rb +0 -65
  449. data/lib/adiwg/mdtranslator/writers/html/sections/html_headScript.js +0 -18
  450. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceContact.rb +0 -37
  451. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceGeneral.rb +0 -133
  452. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceId.rb +0 -77
  453. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceMaint.rb +0 -56
  454. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceOther.rb +0 -88
  455. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceUsage.rb +0 -56
  456. data/lib/adiwg/mdtranslator/writers/html/sections/html_responsibleParty.rb +0 -39
  457. data/lib/adiwg/mdtranslator/writers/html/sections/html_spatialReferenceSystem.rb +0 -58
  458. data/lib/adiwg/mdtranslator/writers/html/sections/html_temporalElement.rb +0 -61
  459. data/lib/adiwg/mdtranslator/writers/html/sections/html_verticalElement.rb +0 -59
  460. data/lib/adiwg/mdtranslator/writers/iso19110/class_FCfeatureCatalogue.rb +0 -191
  461. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_telephone.rb +0 -92
  462. data/lib/adiwg/mdtranslator/writers/iso19110/version.rb +0 -14
  463. data/lib/adiwg/mdtranslator/writers/iso19115_2/class_MImetadata.rb +0 -391
  464. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_band.rb +0 -165
  465. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_boundingPolygon.rb +0 -90
  466. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_contentInfo.rb +0 -111
  467. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_digitalTransferOptions.rb +0 -92
  468. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geographicBoundingBox.rb +0 -89
  469. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geographicDescription.rb +0 -44
  470. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gridInfo.rb +0 -80
  471. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_imageDescription.rb +0 -157
  472. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_maintenanceInformation.rb +0 -80
  473. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiGeometry.rb +0 -156
  474. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_rangeElementDescription.rb +0 -88
  475. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_resourceIdentifier.rb +0 -94
  476. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonSystem.rb +0 -115
  477. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_telephone.rb +0 -92
  478. data/lib/adiwg/mdtranslator/writers/iso19115_2/version.rb +0 -17
  479. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_additionalDoc.rb +0 -19
  480. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_base.rb +0 -19
  481. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dataQuality.rb +0 -32
  482. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_distributionInfo.rb +0 -31
  483. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_geographicElement.rb +0 -81
  484. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_gridInfo.rb +0 -27
  485. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceIdentifier.rb +0 -23
  486. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceMaintenance.rb +0 -23
  487. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_spatialreference.rb +0 -19
  488. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_taxon.rb +0 -19
  489. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_temporalElement.rb +0 -38
  490. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_verticalElement.rb +0 -20
  491. data/test/readers/mdJson/v1/tc_reader_mdjson_additionalDocumentation.rb +0 -116
  492. data/test/readers/mdJson/v1/tc_reader_mdjson_address.rb +0 -111
  493. data/test/readers/mdJson/v1/tc_reader_mdjson_associatedResource.rb +0 -157
  494. data/test/readers/mdJson/v1/tc_reader_mdjson_browseGraphic.rb +0 -119
  495. data/test/readers/mdJson/v1/tc_reader_mdjson_citation.rb +0 -143
  496. data/test/readers/mdJson/v1/tc_reader_mdjson_contact.rb +0 -138
  497. data/test/readers/mdJson/v1/tc_reader_mdjson_dataQuality.rb +0 -111
  498. data/test/readers/mdJson/v1/tc_reader_mdjson_dateTime.rb +0 -159
  499. data/test/readers/mdJson/v1/tc_reader_mdjson_descriptiveKeyword.rb +0 -115
  500. data/test/readers/mdJson/v1/tc_reader_mdjson_dictionaryInfo.rb +0 -121
  501. data/test/readers/mdJson/v1/tc_reader_mdjson_digitalTransferOption.rb +0 -94
  502. data/test/readers/mdJson/v1/tc_reader_mdjson_distributionOrder.rb +0 -103
  503. data/test/readers/mdJson/v1/tc_reader_mdjson_domain.rb +0 -130
  504. data/test/readers/mdJson/v1/tc_reader_mdjson_domainItem.rb +0 -98
  505. data/test/readers/mdJson/v1/tc_reader_mdjson_entity.rb +0 -134
  506. data/test/readers/mdJson/v1/tc_reader_mdjson_entityAttribute.rb +0 -154
  507. data/test/readers/mdJson/v1/tc_reader_mdjson_entityForeignKey.rb +0 -100
  508. data/test/readers/mdJson/v1/tc_reader_mdjson_entityIndex.rb +0 -99
  509. data/test/readers/mdJson/v1/tc_reader_mdjson_legalConstraint.rb +0 -104
  510. data/test/readers/mdJson/v1/tc_reader_mdjson_lineage.rb +0 -117
  511. data/test/readers/mdJson/v1/tc_reader_mdjson_medium.rb +0 -98
  512. data/test/readers/mdJson/v1/tc_reader_mdjson_metadataInfo.rb +0 -141
  513. data/test/readers/mdJson/v1/tc_reader_mdjson_onlineResource.rb +0 -110
  514. data/test/readers/mdJson/v1/tc_reader_mdjson_phone.rb +0 -112
  515. data/test/readers/mdJson/v1/tc_reader_mdjson_processStep.rb +0 -118
  516. data/test/readers/mdJson/v1/tc_reader_mdjson_resolution.rb +0 -77
  517. data/test/readers/mdJson/v1/tc_reader_mdjson_source.rb +0 -117
  518. data/test/readers/mdJson/v1/tc_reader_mdjson_translation.rb +0 -85
  519. data/test/readers/mdJson/v1/tc_translation_19110.rb +0 -58
  520. data/test/readers/sbJson/v0/tc_reader_sbjson_translation.rb +0 -81
  521. data/test/readers/sbJson/v0/test.json +0 -431
  522. data/test/readers/sbJson/v0/test1.json +0 -383
  523. data/test/writers/iso19115_2/tc_writer_iso19115_2_address.rb +0 -229
  524. data/test/writers/mdJson/v1/tc_writer_mdJson.rb +0 -62
  525. data/test/writers/sbJson/v0/tc_writer_sbJson.rb +0 -62
@@ -0,0 +1,112 @@
1
+ # unpack duration
2
+ # Reader - ADIwg JSON to internal data structure
3
+
4
+ # History:
5
+ # Stan Smith 2016-10-03 original script
6
+
7
+ module ADIWG
8
+ module Mdtranslator
9
+ module Readers
10
+ module MdJson
11
+
12
+ module Duration
13
+
14
+ def self.unpack(hDuration, responseObj)
15
+
16
+ # return nil object if input is empty
17
+ if hDuration.empty?
18
+ responseObj[:readerExecutionMessages] << 'Duration object is empty'
19
+ responseObj[:readerExecutionPass] = false
20
+ return nil
21
+ end
22
+
23
+ # instance classes needed in script
24
+ intMetadataClass = InternalMetadata.new
25
+ intDuration = intMetadataClass.newDuration
26
+
27
+ # duration - years
28
+ if hDuration.has_key?('years')
29
+ if hDuration['years'].nil?
30
+ intDuration[:years] = 0
31
+ else
32
+ intDuration[:years] = hDuration['years']
33
+ end
34
+ else
35
+ intDuration[:years] = 0
36
+ end
37
+
38
+ # duration - months
39
+ if hDuration.has_key?('months')
40
+ if hDuration['months'].nil?
41
+ intDuration[:months] = 0
42
+ else
43
+ intDuration[:months] = hDuration['months']
44
+ end
45
+ else
46
+ intDuration[:months] = 0
47
+ end
48
+
49
+ # duration - days
50
+ if hDuration.has_key?('days')
51
+ if hDuration['days'].nil?
52
+ intDuration[:days] = 0
53
+ else
54
+ intDuration[:days] = hDuration['days']
55
+ end
56
+ else
57
+ intDuration[:days] = 0
58
+ end
59
+
60
+ # duration - hours
61
+ if hDuration.has_key?('hours')
62
+ if hDuration['hours'].nil?
63
+ intDuration[:hours] = 0
64
+ else
65
+ intDuration[:hours] = hDuration['hours']
66
+ end
67
+ else
68
+ intDuration[:hours] = 0
69
+ end
70
+
71
+ # duration - minutes
72
+ if hDuration.has_key?('minutes')
73
+ if hDuration['minutes'].nil?
74
+ intDuration[:minutes] = 0
75
+ else
76
+ intDuration[:minutes] = hDuration['minutes']
77
+ end
78
+ else
79
+ intDuration[:minutes] = 0
80
+ end
81
+
82
+ # duration - seconds
83
+ if hDuration.has_key?('seconds')
84
+ if hDuration['seconds'].nil?
85
+ intDuration[:seconds] = 0
86
+ else
87
+ intDuration[:seconds] = hDuration['seconds']
88
+ end
89
+ else
90
+ intDuration[:seconds] = 0
91
+ end
92
+
93
+ totalDuration = intDuration[:years] +
94
+ intDuration[:months] +
95
+ intDuration[:days] +
96
+ intDuration[:hours] +
97
+ intDuration[:minutes] +
98
+ intDuration[:seconds]
99
+ unless totalDuration > 0
100
+ responseObj[:readerExecutionMessages] << 'Duration is zero'
101
+ responseObj[:readerExecutionPass] = false
102
+ return nil
103
+ end
104
+
105
+ return intDuration
106
+ end
107
+ end
108
+
109
+ end
110
+ end
111
+ end
112
+ end
@@ -0,0 +1,135 @@
1
+ # unpack a data dictionary entity
2
+ # Reader - mdJson to internal data structure
3
+
4
+ # History:
5
+ # Stan Smith 2016-10-07 refactored for mdJson 2.0
6
+ # Stan Smith 2015-07-24 added error reporting of missing items
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 2015-02-17 add entity aliases
10
+ # Stan Smith 2014-12-15 refactored to handle namespacing readers and writers
11
+ # Stan Smith 2013-12-01 original script
12
+
13
+ require_relative 'module_entityIndex'
14
+ require_relative 'module_entityAttribute'
15
+ require_relative 'module_entityForeignKey'
16
+
17
+ module ADIWG
18
+ module Mdtranslator
19
+ module Readers
20
+ module MdJson
21
+
22
+ module Entity
23
+
24
+ def self.unpack(hEntity, responseObj)
25
+
26
+ # return nil object if input is empty
27
+ if hEntity.empty?
28
+ responseObj[:readerExecutionMessages] << 'Entity object is empty'
29
+ responseObj[:readerExecutionPass] = false
30
+ return nil
31
+ end
32
+
33
+ # instance classes needed in script
34
+ intMetadataClass = InternalMetadata.new
35
+ intEntity = intMetadataClass.newEntity
36
+
37
+ # entity - id
38
+ if hEntity.has_key?('entityId')
39
+ s = hEntity['entityId']
40
+ unless s == ''
41
+ intEntity[:entityId] = s
42
+ end
43
+ end
44
+
45
+ # entity - name
46
+ if hEntity.has_key?('commonName')
47
+ if hEntity['commonName'] != ''
48
+ intEntity[:entityName] = hEntity['commonName']
49
+ end
50
+ end
51
+
52
+ # entity - code (required)
53
+ if hEntity.has_key?('codeName')
54
+ intEntity[:entityCode] = hEntity['codeName']
55
+ end
56
+ if intEntity[:entityCode].nil? || intEntity[:entityCode] == ''
57
+ responseObj[:readerExecutionMessages] << 'Data Dictionary entity code name is missing'
58
+ responseObj[:readerExecutionPass] = false
59
+ return nil
60
+ end
61
+
62
+ # entity - alias []
63
+ if hEntity.has_key?('alias')
64
+ hEntity['alias'].each do |item|
65
+ if item != ''
66
+ intEntity[:entityAlias] << item
67
+ end
68
+ end
69
+ end
70
+
71
+ # entity - definition (required)
72
+ if hEntity.has_key?('definition')
73
+ intEntity[:entityDefinition] = hEntity['definition']
74
+ end
75
+ if intEntity[:entityDefinition].nil? || intEntity[:entityDefinition] == ''
76
+ responseObj[:readerExecutionMessages] << 'Data Dictionary entity definition is missing'
77
+ responseObj[:readerExecutionPass] = false
78
+ return nil
79
+ end
80
+
81
+ # data entity - primary key (NOT required)
82
+ if hEntity.has_key?('primaryKeyAttributeCodeName')
83
+ hEntity['primaryKeyAttributeCodeName'].each do |item|
84
+ if item != ''
85
+ intEntity[:primaryKey] << item
86
+ end
87
+ end
88
+ end
89
+
90
+ # entity - indexes []
91
+ if hEntity.has_key?('index')
92
+ hEntity['index'].each do |hIndex|
93
+ unless hIndex.empty?
94
+ index = EntityIndex.unpack(hIndex, responseObj)
95
+ unless index.nil?
96
+ intEntity[:indexes] << index
97
+ end
98
+ end
99
+ end
100
+ end
101
+
102
+ # entity - attributes []
103
+ if hEntity.has_key?('attribute')
104
+ hEntity['attribute'].each do |hAttribute|
105
+ unless hAttribute.empty?
106
+ attribute = EntityAttribute.unpack(hAttribute, responseObj)
107
+ unless attribute.nil?
108
+ intEntity[:attributes] << attribute
109
+ end
110
+ end
111
+ end
112
+ end
113
+
114
+ # entity - foreign keys []
115
+ if hEntity.has_key?('foreignKey')
116
+ hEntity['foreignKey'].each do |hFKey|
117
+ unless hFKey.empty?
118
+ fKey = EntityForeignKey.unpack(hFKey, responseObj)
119
+ unless fKey.nil?
120
+ intEntity[:foreignKeys] << fKey
121
+ end
122
+ end
123
+ end
124
+ end
125
+
126
+ return intEntity
127
+
128
+ end
129
+
130
+ end
131
+
132
+ end
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,130 @@
1
+ # unpack an data entity attribute
2
+ # Reader - ADIwg JSON V1 to internal data structure
3
+
4
+ # History:
5
+ # Stan Smith 2016-10-05 refactored for mdJson 2.0
6
+ # Stan Smith 2015-07-24 added error reporting of missing items
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 2015-02-17 added support for attribute aliases
10
+ # Stan Smith 2014-12-15 refactored to handle namespacing readers and writers
11
+ # Stan Smith 2013-12-01 original script
12
+
13
+ module ADIWG
14
+ module Mdtranslator
15
+ module Readers
16
+ module MdJson
17
+
18
+ module EntityAttribute
19
+
20
+ def self.unpack(hAttribute, responseObj)
21
+
22
+ # return nil object if input is empty
23
+ if hAttribute.empty?
24
+ responseObj[:readerExecutionMessages] << 'Entity Attribute object is empty'
25
+ responseObj[:readerExecutionPass] = false
26
+ return nil
27
+ end
28
+
29
+ # instance classes needed in script
30
+ intMetadataClass = InternalMetadata.new
31
+ intAttribute = intMetadataClass.newEntityAttribute
32
+
33
+ # attribute - common name
34
+ if hAttribute.has_key?('commonName')
35
+ if hAttribute['commonName'] != ''
36
+ intAttribute[:attributeName] = hAttribute['commonName']
37
+ end
38
+ end
39
+
40
+ # attribute - code name (required)
41
+ if hAttribute.has_key?('codeName')
42
+ intAttribute[:attributeCode] = hAttribute['codeName']
43
+ end
44
+ if intAttribute[:attributeCode].nil? || intAttribute[:attributeCode] == ''
45
+ responseObj[:readerExecutionMessages] << 'Data Dictionary attribute code name is missing'
46
+ responseObj[:readerExecutionPass] = false
47
+ return nil
48
+ end
49
+
50
+ # attribute - alias []
51
+ if hAttribute.has_key?('alias')
52
+ hAttribute['alias'].each do |item|
53
+ if item != ''
54
+ intAttribute[:attributeAlias] << item
55
+ end
56
+ end
57
+ end
58
+
59
+ # attribute - definition (required)
60
+ if hAttribute.has_key?('definition')
61
+ intAttribute[:attributeDefinition] = hAttribute['definition']
62
+ end
63
+ if intAttribute[:attributeDefinition].nil? || intAttribute[:attributeDefinition] == ''
64
+ responseObj[:readerExecutionMessages] << 'Data Dictionary attribute definition is missing'
65
+ responseObj[:readerExecutionPass] = false
66
+ return nil
67
+ end
68
+
69
+ # attribute - data type (required)
70
+ if hAttribute.has_key?('dataType')
71
+ intAttribute[:dataType] = hAttribute['dataType']
72
+ end
73
+ if intAttribute[:dataType].nil? || intAttribute[:dataType] == ''
74
+ responseObj[:readerExecutionMessages] << 'Data Dictionary attribute data type is missing'
75
+ responseObj[:readerExecutionPass] = false
76
+ return nil
77
+ end
78
+
79
+ # attribute - minimum cardinality (required)
80
+ if hAttribute.has_key?('allowNull')
81
+ if hAttribute['allowNull'] === true
82
+ intAttribute[:allowNull] = hAttribute['allowNull']
83
+ end
84
+ end
85
+
86
+ # attribute - maximum cardinality
87
+ if hAttribute.has_key?('allowMany')
88
+ if hAttribute['allowMany'] === true
89
+ intAttribute[:allowMany] = hAttribute['allowMany']
90
+ end
91
+ end
92
+
93
+ # attribute - units of measure
94
+ if hAttribute.has_key?('units')
95
+ if hAttribute['units'] != ''
96
+ intAttribute[:unitOfMeasure] = hAttribute['units']
97
+ end
98
+ end
99
+
100
+ # attribute - domain ID
101
+ if hAttribute.has_key?('domainId')
102
+ if hAttribute['domainId'] != ''
103
+ intAttribute[:domainId] = hAttribute['domainId']
104
+ end
105
+ end
106
+
107
+ # attribute - minimum value
108
+ if hAttribute.has_key?('minValue')
109
+ if hAttribute['minValue'] != ''
110
+ intAttribute[:minValue] = hAttribute['minValue']
111
+ end
112
+ end
113
+
114
+ # attribute - maximum value
115
+ if hAttribute.has_key?('maxValue')
116
+ if hAttribute['maxValue'] != ''
117
+ intAttribute[:maxValue] = hAttribute['maxValue']
118
+ end
119
+ end
120
+
121
+ return intAttribute
122
+
123
+ end
124
+
125
+ end
126
+
127
+ end
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,78 @@
1
+ # unpack an data entity foreign key
2
+ # Reader - ADIwg JSON V1 to internal data structure
3
+
4
+ # History:
5
+ # Stan Smith 2016-10-06 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
9
+ # Stan Smith 2015-07-24 added error reporting of missing items
10
+ # Stan Smith 2013-12-01 original script
11
+
12
+ module ADIWG
13
+ module Mdtranslator
14
+ module Readers
15
+ module MdJson
16
+
17
+ module EntityForeignKey
18
+
19
+ def self.unpack(hFKey, responseObj)
20
+
21
+ # return nil object if input is empty
22
+ if hFKey.empty?
23
+ responseObj[:readerExecutionMessages] << 'Foreign Key object is empty'
24
+ responseObj[:readerExecutionPass] = false
25
+ return nil
26
+ end
27
+
28
+ # instance classes needed in script
29
+ intMetadataClass = InternalMetadata.new
30
+ intFKey = intMetadataClass.newEntityForeignKey
31
+
32
+ # entity foreign key - local attribute code name [] (required)
33
+ # return nil if no local attribute is provided
34
+ if hFKey.has_key?('localAttributeCodeName')
35
+ intFKey[:fkLocalAttributes] = hFKey['localAttributeCodeName']
36
+ else
37
+ intFKey[:fkLocalAttributes] = []
38
+ end
39
+ if intFKey[:fkLocalAttributes].empty?
40
+ responseObj[:readerExecutionMessages] << 'Data Dictionary foreign key local attribute code name is missing'
41
+ responseObj[:readerExecutionPass] = false
42
+ return nil
43
+ end
44
+
45
+ # entity foreign key - referenced entity code name (required)
46
+ # return nil if no referenced entity is provided
47
+ if hFKey.has_key?('referencedEntityCodeName')
48
+ intFKey[:fkReferencedEntity] = hFKey['referencedEntityCodeName']
49
+ end
50
+ if intFKey[:fkReferencedEntity].nil? || intFKey[:fkReferencedEntity] == ''
51
+ responseObj[:readerExecutionMessages] << 'Data Dictionary foreign key referenced entity name is missing'
52
+ responseObj[:readerExecutionPass] = false
53
+ return nil
54
+ end
55
+
56
+ # entity foreign key - referenced attribute code name [] (required)
57
+ # return nil if no referenced attribute is provided
58
+ if hFKey.has_key?('referencedAttributeCodeName')
59
+ intFKey[:fkReferencedAttributes] = hFKey['referencedAttributeCodeName']
60
+ else
61
+ intFKey[:fkReferencedAttributes] = []
62
+ end
63
+ if intFKey[:fkReferencedAttributes].empty?
64
+ responseObj[:readerExecutionMessages] << 'Data Dictionary foreign key referenced attribute name is missing'
65
+ responseObj[:readerExecutionPass] = false
66
+ return nil
67
+ end
68
+
69
+ return intFKey
70
+
71
+ end
72
+
73
+ end
74
+
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,72 @@
1
+ # unpack an data entity index
2
+ # Reader - ADIwg JSON V1 to internal data structure
3
+
4
+ # History:
5
+ # Stan Smith 2016-10-07 refactored for mdJson 2.0
6
+ # Stan Smith 2015-07-24 added error reporting of missing items
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 2013-12-01 original script
11
+
12
+ module ADIWG
13
+ module Mdtranslator
14
+ module Readers
15
+ module MdJson
16
+
17
+ module EntityIndex
18
+
19
+ def self.unpack(hIndex, responseObj)
20
+
21
+ # return nil object if input is empty
22
+ if hIndex.empty?
23
+ responseObj[:readerExecutionMessages] << 'Entity Index object is empty'
24
+ responseObj[:readerExecutionPass] = false
25
+ return nil
26
+ end
27
+
28
+ # instance classes needed in script
29
+ intMetadataClass = InternalMetadata.new
30
+ intIndex = intMetadataClass.newEntityIndex
31
+
32
+ # entity index - code name (required)
33
+ # return nil if no entity index is provided
34
+ if hIndex.has_key?('codeName')
35
+ intIndex[:indexCode] = hIndex['codeName']
36
+ end
37
+ if intIndex[:indexCode].nil? || intIndex[:indexCode] == ''
38
+ responseObj[:readerExecutionMessages] << 'Data Dictionary entity index name is missing'
39
+ responseObj[:readerExecutionPass] = false
40
+ return nil
41
+ end
42
+
43
+ # entity index - allow duplicates (required)
44
+ if hIndex.has_key?('allowDuplicates')
45
+ if hIndex['allowDuplicates'] === true
46
+ intIndex[:duplicate] = true
47
+ end
48
+ end
49
+
50
+ # entity index - attribute list [] (required)
51
+ # return nil if no attribute list is provided
52
+ if hIndex.has_key?('attributeCodeName')
53
+ intIndex[:attributeNames] = hIndex['attributeCodeName']
54
+ else
55
+ intIndex[:attributeNames] = []
56
+ end
57
+ if intIndex[:attributeNames].empty?
58
+ responseObj[:readerExecutionMessages] << 'Data Dictionary entity index attribute list is missing'
59
+ responseObj[:readerExecutionPass] = false
60
+ return nil
61
+ end
62
+
63
+ return intIndex
64
+
65
+ end
66
+
67
+ end
68
+
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,83 @@
1
+ # unpack a extent
2
+ # Reader - mdJson to internal data structure
3
+
4
+ # History:
5
+ # Stan Smith 2016-10-30 original script
6
+
7
+ require_relative 'module_geographicExtent'
8
+ require_relative 'module_temporalExtent'
9
+ require_relative 'module_verticalExtent'
10
+
11
+ module ADIWG
12
+ module Mdtranslator
13
+ module Readers
14
+ module MdJson
15
+
16
+ module Extent
17
+
18
+ def self.unpack(hExtent, responseObj)
19
+
20
+ # return nil object if input is empty
21
+ if hExtent.empty?
22
+ responseObj[:readerExecutionMessages] << 'Extent object is empty'
23
+ responseObj[:readerExecutionPass] = false
24
+ return nil
25
+ end
26
+
27
+ # instance classes needed in script
28
+ intMetadataClass = InternalMetadata.new
29
+ intExtent = intMetadataClass.newExtent
30
+
31
+ # extent - description
32
+ if hExtent.has_key?('description')
33
+ if hExtent['description'] != ''
34
+ intExtent[:description] = hExtent['description']
35
+ end
36
+ end
37
+
38
+ # extent - geographicExtent
39
+ if hExtent.has_key?('geographicExtent')
40
+ hExtent['geographicExtent'].each do |item|
41
+ unless item.empty?
42
+ hReturn = GeographicExtent.unpack(item, responseObj)
43
+ unless hReturn.nil?
44
+ intExtent[:geographicExtents] << hReturn
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ # extent - temporalExtent
51
+ if hExtent.has_key?('temporalExtent')
52
+ hExtent['temporalExtent'].each do |item|
53
+ unless item.empty?
54
+ hReturn = TemporalExtent.unpack(item, responseObj)
55
+ unless hReturn.nil?
56
+ intExtent[:temporalExtents] << hReturn
57
+ end
58
+ end
59
+ end
60
+ end
61
+
62
+ # extent - verticalExtent
63
+ if hExtent.has_key?('verticalExtent')
64
+ hExtent['verticalExtent'].each do |item|
65
+ unless item.empty?
66
+ hReturn = VerticalExtent.unpack(item, responseObj)
67
+ unless hReturn.nil?
68
+ intExtent[:verticalExtents] << hReturn
69
+ end
70
+ end
71
+ end
72
+ end
73
+
74
+ return intExtent
75
+
76
+ end
77
+
78
+ end
79
+
80
+ end
81
+ end
82
+ end
83
+ end