class ADIWG::Mdtranslator::Writers::Fgdc::TimePeriod

Public Class Methods

new(xml, hResponseObj) click to toggle source
# File lib/adiwg/mdtranslator/writers/fgdc/classes/class_timePeriod.rb, line 21
def initialize(xml, hResponseObj)
   @xml = xml
   @hResponseObj = hResponseObj
   @NameSpace = ADIWG::Mdtranslator::Writers::Fgdc
end

Public Instance Methods

writeXML(hTimePeriod, currentTag) click to toggle source
# File lib/adiwg/mdtranslator/writers/fgdc/classes/class_timePeriod.rb, line 27
def writeXML(hTimePeriod, currentTag)

   # classes used
   singDateClass = DateSingle.new(@xml, @hResponseObj)
   rangeDateClass = DateRange.new(@xml, @hResponseObj)
   geologicAgeClass = GeologicAge.new(@xml, @hResponseObj)
   geologicRangeClass = GeologicRange.new(@xml, @hResponseObj)

   hStartDate = hTimePeriod[:startDateTime]
   hEndDate = hTimePeriod[:endDateTime]
   hStartGeoAge = hTimePeriod[:startGeologicAge]
   hEndGeoAge = hTimePeriod[:endGeologicAge]
   current = hTimePeriod[:description]

   dateCount = 0
   ageCount = 0
   dateCount += 1 unless hStartDate.empty?
   dateCount += 1 unless hEndDate.empty?
   ageCount += 1 unless hStartGeoAge.empty?
   ageCount += 1 unless hEndGeoAge.empty?

   if dateCount + ageCount == 0
      @NameSpace.issueWarning(440, nil)
   end

   if dateCount > 0 && ageCount > 0
      @NameSpace.issueWarning(441, nil)
      @NameSpace.issueWarning(442, nil)
      ageCount = 0
   end

   @xml.tag!('timeinfo') do

      # single date
      if dateCount == 1
         if hStartDate.empty?
            singDateClass.writeXML(hEndDate)
         else
            singDateClass.writeXML(hStartDate)
         end
      end

      # date range
      if dateCount == 2
         rangeDateClass.writeXML(hStartDate, hEndDate)
      end

      # single geologic age
      if ageCount == 1
         @xml.tag!('sngdate') do
            @xml.tag!('geolage') do
               if hStartGeoAge.empty?
                  geologicAgeClass.writeXML(hEndGeoAge)
               else
                  geologicAgeClass.writeXML(hStartGeoAge)
               end
            end
         end
      end

      # geologic age range
      if ageCount == 2
         @xml.tag!('rngdates') do
            geologicRangeClass.writeXML(hStartGeoAge,hEndGeoAge )
         end
      end

   end

   # add timeInfo currentness (required if currentTag not nil)
   unless currentTag.nil?
      unless current.nil?
         @xml.tag!(currentTag, current)
      end
      if current.nil?
         @NameSpace.issueWarning(443, currentTag)
      end
   end

end