class ADIWG::Mdtranslator::Writers::Iso19115_1::EX_Extent

Public Class Methods

new(xml, hResponseObj) click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_1/classes/class_extent.rb, line 18
def initialize(xml, hResponseObj)
   @xml = xml
   @hResponseObj = hResponseObj
end

Public Instance Methods

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

   # classes used
   tempExtClass = EX_TemporalExtent.new(@xml, @hResponseObj)
   vertExtClass = EX_VerticalExtent.new(@xml, @hResponseObj)
   geoExtClass = GeographicExtent.new(@xml, @hResponseObj)

   outContext = 'extent'
   outContext = inContext + ' extent' unless inContext.nil?

   @xml.tag!('gex:EX_Extent') do

      # extent - description
      unless hExtent[:description].nil?
         @xml.tag!('gex:description') do
            @xml.tag!('gco:CharacterString', hExtent[:description])
         end
      end
      if hExtent[:description].nil? && @hResponseObj[:writerShowTags]
         @xml.tag!('gex:description')
      end

      # extent - geographic extent []
      # {EX_GeographicDescription | EX_GeographicBoundingBox | EX_BoundingPolygon}
      aGeoExtents = hExtent[:geographicExtents]
      aGeoExtents.each do |hGeoExtent|
         geoExtClass.writeXML(hGeoExtent)
      end
      if aGeoExtents.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('gex:geographicElement')
      end

      # extent - temporal extent [] {EX_TemporalExtent}
      # EX_SpatialTemporalExtent not implemented
      aTempElements = hExtent[:temporalExtents]
      aTempElements.each do |hTempElement|
         @xml.tag!('gex:temporalElement') do
            tempExtClass.writeXML(hTempElement)
         end
      end
      if aTempElements.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('gex:temporalElement')
      end

      # extent - vertical extent [] {EX_VerticalExtent}
      aVertElements = hExtent[:verticalExtents]
      aVertElements.each do |hVertElement|
         @xml.tag!('gex:verticalElement') do
            vertExtClass.writeXML(hVertElement)
         end
      end
      if aVertElements.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('gex:verticalElement')
      end

   end # gmd:EX_Extent tag
end