class ADIWG::Mdtranslator::Writers::Fgdc::DataDomain

Public Class Methods

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

Public Instance Methods

writeXML(domainId, inContext = nil) click to toggle source
# File lib/adiwg/mdtranslator/writers/fgdc/classes/class_dataDomain.rb, line 23
def writeXML(domainId, inContext = nil)
   
   # get the domain
   hIntObj = ADIWG::Mdtranslator::Writers::Fgdc.get_intObj
   hDictionary = hIntObj[:dataDictionaries][0]
   hDomain = {}
   hDictionary[:domains].each do |hItem|
      if hItem[:domainId] == domainId
         hDomain = hItem
      end
   end
   if hDomain.empty?
      @NameSpace.issueError(70, domainId)
   end

   outContext = domainId
   haveDomain = false

   # attribute 5.1.2.4.1 (edom) - enumerated domain
   hDomain[:domainItems].each do |hItem|
      haveDomain = true
      @xml.tag!('attrdomv') do
         @xml.tag!('edom') do

            # value 5.1.2.4.1.1 (edomv) - enumerated value (required)
            unless hItem[:itemValue].nil?
               @xml.tag!('edomv', hItem[:itemValue])
            end
            if hItem[:itemValue].nil?
               @NameSpace.issueWarning(71,'edomv', outContext)
            end

            # definition 5.1.2.4.1.2 (edomvd) - enumerated value definition (required)
            unless hItem[:itemDefinition].nil?
               @xml.tag!('edomvd', hItem[:itemDefinition])
            end
            if hItem[:itemDefinition].nil?
               @NameSpace.issueWarning(72,'edomvd', outContext)
            end

            # source 5.1.2.4.1.3 (edomvds) - enumerated value definition source (default='author defined')
            unless hItem[:itemReference].empty?
               @xml.tag!('edomvds', hItem[:itemReference][:title])
            end
            if hItem[:itemReference].empty?
               @NameSpace.issueWarning(76, 'edomvds', outContext)
            end

         end
      end
   end
   return if haveDomain

   # attribute 5.1.2.4.3 (codesetd) - codeset domain
   unless hDomain[:domainReference].empty?
      haveDomain = true
      @xml.tag!('attrdomv') do
         @xml.tag!('codesetd') do

            # codeset 5.1.2.4.3.1 (codesetn) - codeset name (required)
            # <- domain.name
            unless hDomain[:domainName].nil?
               @xml.tag!('codesetn', hDomain[:domainName])
            end
            if hDomain[:domainName].nil?
               @NameSpace.issueWarning(74, 'codesetn', outContext)
            end

            # codeset 5.1.2.4.3.2 (codesets) - codeset source (required)
            # <- domain.domainReference.title
            unless hDomain[:domainReference][:title].nil?
               @xml.tag!('codesets', hDomain[:domainReference][:title])
            end
            if hDomain[:domainReference][:title].nil?
               @NameSpace.issueWarning(75,'codesets', outContext)
            end

         end
      end
   end
   return if haveDomain

   # attribute 5.1.2.4.4 (4dom) - unrepresented domain
   if hDomain[:domainItems].empty?
      if hDomain[:domainReference].empty?
         unless hDomain[:domainDescription].nil?
            @xml.tag!('attrdomv') do
               @xml.tag!('udom', hDomain[:domainDescription])
            end
         end
      end
   end

end