class ADIWG::Mdtranslator::Writers::Iso19115_1::MD_ReferenceSystem

Public Class Methods

new(xml, hResponseObj) click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_1/classes/class_referenceSystem.rb, line 19
def initialize(xml, hResponseObj)
   @xml = xml
   @hResponseObj = hResponseObj
   @NameSpace = ADIWG::Mdtranslator::Writers::Iso19115_1
end

Public Instance Methods

writeXML(hSystem, inContext = nil) click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_1/classes/class_referenceSystem.rb, line 25
def writeXML(hSystem, inContext = nil)

   # classes used
   intMetadataClass = InternalMetadata.new
   codelistClass = MD_Codelist.new(@xml, @hResponseObj)
   idClass = MD_Identifier.new(@xml, @hResponseObj)

   outContext = 'spatial reference system'
   outContext = inContext + ' spatial reference system' unless inContext.nil?

   unless hSystem.empty?
      @xml.tag!('mrs:MD_ReferenceSystem') do
         haveSystem = false

         # reference system - reference system identifier {MD_Identifier}
         unless hSystem[:systemIdentifier].empty?
            @xml.tag!('mrs:referenceSystemIdentifier') do
               idClass.writeXML(hSystem[:systemIdentifier], outContext)
            end
            haveSystem = true
         end

         # reference system - reference system WKT {MD_Identifier}
         if hSystem[:systemIdentifier].empty? && !hSystem[:systemWKT].nil?
            hIdentifier = intMetadataClass.newIdentifier
            hIdentifier[:identifier] = 'WKT'
            hIdentifier[:namespace] = 'www.opengeospatial.org/standards/wkt-crs'
            hIdentifier[:description] = hSystem[:systemWKT]
            @xml.tag!('mrs:referenceSystemIdentifier') do
               idClass.writeXML(hIdentifier, outContext)
            end
            haveSystem = true
         end

         # test for missing reference system identifier / reference system WKT
         # both use the same ISO tag
         if hSystem[:systemIdentifier].empty? && @hResponseObj[:writerShowTags] && !haveSystem
            @xml.tag!('mrs:referenceSystemIdentifier')
         end

         # reference system - reference system type {MD_ReferenceSystemTypeCode}
         unless hSystem[:systemType].nil?
            @xml.tag!('mrs:referenceSystemType') do
               codelistClass.writeXML('mrs', 'iso_referenceSystemType', hSystem[:systemType])
            end
            haveSystem = true
         end
         if hSystem[:systemType].nil? && @hResponseObj[:writerShowTags]
            @xml.tag!('mrs:referenceSystemType')
         end

         if !haveSystem
            @NameSpace.issueWarning(380, nil, inContext)
            @NameSpace.issueWarning(381, nil, inContext)
         end

         # reference system parameter sets not implemented in ISO 19115-3

      end
   end

end