Module: ADIWG::Mdtranslator::Writers::Iso19115_3

Defined in:
lib/adiwg/mdtranslator/writers/iso19115_3/version.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/iso19115_3_writer.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_date.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_grid.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_email.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_phone.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_point.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_scope.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_usage.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_extent.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_format.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_locale.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_mdBand.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_medium.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_miBand.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_series.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_source.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_address.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_contact.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_feature.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_keyword.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_lineage.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_measure.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_polygon.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_baseUnit.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_citation.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_codelist.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_fraction.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_leSource.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_liSource.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_algorithm.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_attribute.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_dimension.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_multiLine.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_constraint.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_identifier.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_individual.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_lineString.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_mdMetadata.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_multiPoint.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_processing.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_resolution.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_timePeriod.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_boundingBox.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_dataQuality.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_derivedUnit.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_distributor.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_gcoDateTime.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_maintenance.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_processStep.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_timeInstant.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_distribution.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_georectified.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_multiPolygon.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_orderProcess.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_organization.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_browseGraphic.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_gmlIdentifier.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_leProcessStep.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_liProcessStep.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_processReport.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_releasability.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_attributeGroup.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_definitionUnit.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_featureCatalog.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_onlineResource.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_rangeDimension.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_responsibility.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_temporalExtent.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_unitsOfMeasure.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_useConstraints.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_verticalExtent.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_partyIdentifier.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_referenceSystem.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_sampleDimension.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_transferOptions.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_constraintCommon.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_conventionalUnit.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_geographicExtent.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_geometricObjects.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_georeferenceable.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_imageDescription.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_legalConstraints.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_scopeDescription.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_dataQualityReport.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_featureCollection.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_featureProperties.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_geographicElement.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_nominalResolution.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_additionalDocument.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_associatedResource.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_dataIdentification.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_geometryCollection.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_gridRepresentation.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_coverageDescription.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_securityConstraints.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_vectorRepresentation.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_spatialRepresentation.rb,
lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_rangeElementDescription.rb

Defined Under Namespace

Classes: AdditionalDocument, Attribute, BaseUnit, CI_Address, CI_Citation, CI_Contact, CI_Date, CI_Individual, CI_OnlineResource, CI_Organization, CI_Responsibility, CI_Series, CI_Telephone, Constraint, ConstraintCommon, ConventionalUnit, DQ_DataQuality, DataQualityReport, DerivedUnit, EX_Extent, EX_GeographicBoundingBox, EX_TemporalExtent, EX_VerticalExtent, Email, Feature, FeatureCollection, FeatureProperties, GMLIdentifier, GcoDateTime, GeographicElement, GeographicExtent, GeometryCollection, Grid, LE_Algorithm, LE_NominalResolution, LE_ProcessStep, LE_ProcessStepReport, LE_Processing, LE_Source, LI_Lineage, LI_ProcessStep, LI_Source, LineString, MD_AssociatedResource, MD_AttributeGroup, MD_Band, MD_BrowseGraphic, MD_Codelist, MD_Constraints, MD_CoverageDescription, MD_DataIdentification, MD_DigitalTransferOptions, MD_Dimension, MD_Distribution, MD_Distributor, MD_FeatureCatalogue, MD_Format, MD_GeometricObjects, MD_Georectified, MD_Georeferenceable, MD_GridSpatialRepresentation, MD_Identifier, MD_ImageDescription, MD_Keywords, MD_LegalConstraints, MD_MaintenanceInformation, MD_Medium, MD_Metadata, MD_PartyIdentifier, MD_RangeDimension, MD_ReferenceSystem, MD_Releasability, MD_RepresentativeFraction, MD_Resolution, MD_SampleDimension, MD_Scope, MD_ScopeDescription, MD_SecurityConstraints, MD_StandardOrderProcess, MD_Usage, MD_VectorSpatialRepresentation, MI_Band, MI_RangeElementDescription, Measure, MultiLineString, MultiPoint, MultiPolygon, PT_Locale, Point, Polygon, ProcessStep, Source, SpatialRepresentation, TimeInstant, TimePeriod, UnitDefinition, UnitsOfMeasure

Constant Summary collapse

VERSION =

current version of ISO 19115-3 writer

'3.0.0'

Class Method Summary collapse

Class Method Details

.findMessage(messageId) ⇒ Object



59
60
61
62
63
64
65
66
# File 'lib/adiwg/mdtranslator/writers/iso19115_3/iso19115_3_writer.rb', line 59

def self.findMessage(messageId)
   @aMessagesList.each do |hMessage|
      if hMessage['id'] == messageId
         return hMessage['message']
      end
   end
   return nil
end

.getContact(contactId) ⇒ Object

find contact in contact array and return the contact hash



48
49
50
51
52
53
54
55
56
57
# File 'lib/adiwg/mdtranslator/writers/iso19115_3/iso19115_3_writer.rb', line 48

def self.getContact(contactId)

   @contacts.each do |hContact|
      if hContact[:contactId] == contactId
         return hContact
      end
   end
   return {}

end

.issueError(messageId, context = nil) ⇒ Object



68
69
70
71
72
73
74
75
# File 'lib/adiwg/mdtranslator/writers/iso19115_3/iso19115_3_writer.rb', line 68

def self.issueError(messageId, context = nil)
   message = findMessage(messageId)
   unless message.nil?
      message += ': CONTEXT is ' + context unless context.nil?
      @hResponseObj[:writerMessages] << 'ERROR: ISO-19115-3 writer: ' + message
      @hResponseObj[:writerPass] = false
   end
end

.issueNotice(messageId, context = nil) ⇒ Object



94
95
96
97
98
99
100
# File 'lib/adiwg/mdtranslator/writers/iso19115_3/iso19115_3_writer.rb', line 94

def self.issueNotice(messageId, context = nil)
   message = findMessage(messageId)
   unless message.nil?
      message += ': CONTEXT is ' + context unless context.nil?
      @hResponseObj[:writerMessages] << 'NOTICE: ISO-19115-3 writer: ' + message
   end
end

.issueWarning(messageId, tag = nil, context = nil) ⇒ Object



77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/adiwg/mdtranslator/writers/iso19115_3/iso19115_3_writer.rb', line 77

def self.issueWarning(messageId, tag = nil, context = nil)
   message = findMessage(messageId)
   unless message.nil?
      message += ': CONTEXT is ' + context unless context.nil?
      if @hResponseObj[:writerForceValid]
         if tag.nil?
            issueError(messageId, context)
         else
            @xml.tag!(tag, {'gco:nilReason' => 'missing'})
            @hResponseObj[:writerMessages] << 'WARNING: ISO-19115-3 writer: ' + message
         end
      else
         @hResponseObj[:writerMessages] << 'WARNING: ISO-19115-3 writer: ' + message
      end
   end
end

.startWriter(intObj, hResponseObj) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/adiwg/mdtranslator/writers/iso19115_3/iso19115_3_writer.rb', line 21

def self.startWriter(intObj, hResponseObj)

   # make contact available to the instance
   @contacts = intObj[:contacts]
   @hResponseObj = hResponseObj

   # load error message array
   file = File.join(File.dirname(__FILE__), 'iso19115_3_writer_messages_eng') + '.yml'
   hMessageList = YAML.load_file(file)
   @aMessagesList = hMessageList['messageList']

   # set the format of the output file based on the writer specified
   hResponseObj[:writerOutputFormat] = 'xml'
   hResponseObj[:writerVersion] = ADIWG::Mdtranslator::Writers::Iso19115_3::VERSION

   # create new XML document
   @xml = Builder::XmlMarkup.new(indent: 3)

   # start writing the ISO 19115-3 XML record
   metadataWriter = MD_Metadata.new(@xml, hResponseObj)
    = metadataWriter.writeXML(intObj)

   return 

end