class ADIWG::Mdtranslator::Writers::Iso19115_1::CI_Responsibility

Public Class Methods

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

Public Instance Methods

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

   # classes used
   codelistClass = MD_Codelist.new(@xml, @hResponseObj)
   extentClass = EX_Extent.new(@xml, @hResponseObj)
   individualClass = CI_Individual.new(@xml, @hResponseObj)
   orgClass = CI_Organization.new(@xml, @hResponseObj)

   outContext = 'responsible party'
   outContext = inContext + ' responsible party' unless inContext.nil?

   @xml.tag!('cit:CI_Responsibility') do

      # responsibility - role (required)
      unless hResponsibility[:roleName].nil?
         @xml.tag!('cit:role') do
            codelistClass.writeXML('cit', 'iso_role', hResponsibility[:roleName])
         end
      end
      if hResponsibility[:roleName].nil?
         @NameSpace.issueWarning(270, 'cit:role', outContext)
      end

      # responsibility - extent [] {EX_Extent}
      aExtents = hResponsibility[:roleExtents]
      aExtents.each do |hExtent|
         @xml.tag!('cit:extent') do
            extentClass.writeXML(hExtent)
         end
      end
      if aExtents.empty? && @hResponseObj[:writerShowTags]
         @xml.tag!('cit:extent')
      end

      # responsibility - party [] {CI_Individual | CI_Organization} (required)
      aParty = hResponsibility[:parties]
      aParty.each do |hParty|
         unless hParty.empty?
            contactId = hParty[:contactId]
            hContact = @NameSpace.getContact(contactId)
            unless hContact.empty?
               @xml.tag!('cit:party') do
                  if hContact[:isOrganization]
                     orgClass.writeXML(hParty, hContact, outContext)
                  else
                     individualClass.writeXML(hContact, outContext)
                  end
               end
            end
            if hContact.empty?
               @NameSpace.issueWarning(272, 'cit:party', outContext)
            end
         end
         if hParty.empty?
            @NameSpace.issueWarning(271, 'cit:party', outContext)
         end
      end

   end # CI_Responsibility tag
end