class ADIWG::Mdtranslator::Writers::Iso19115_1::MD_Usage
Public Class Methods
new(xml, hResponseObj)
click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_1/classes/class_usage.rb, line 20 def initialize(xml, hResponseObj) @xml = xml @hResponseObj = hResponseObj @NameSpace = ADIWG::Mdtranslator::Writers::Iso19115_1 end
Public Instance Methods
writeXML(hUsage)
click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_1/classes/class_usage.rb, line 26 def writeXML(hUsage) # classes used in MD_Usage instantClass = TimeInstant.new(@xml, @hResponseObj) periodClass = TimePeriod.new(@xml, @hResponseObj) responsibilityClass = CI_Responsibility.new(@xml, @hResponseObj) citationClass = CI_Citation.new(@xml, @hResponseObj) outContext = 'resource usage' @xml.tag!('mri:MD_Usage') do # usage - specific usage (required) unless hUsage[:specificUsage].nil? @xml.tag!('mri:specificUsage') do @xml.tag!('gco:CharacterString', hUsage[:specificUsage]) end end if hUsage[:specificUsage].nil? @NameSpace.issueWarning(320, 'mri:specificUsage') end # usage - dateTime [0] {TimeInstant | TimePeriod} aExtents = hUsage[:temporalExtents] aExtents.each do |hExtent| unless hExtent.empty? haveTime = false unless hExtent[:timeInstant].empty? @xml.tag!('mri:usageDateTime') do instantClass.writeXML(hExtent[:timeInstant]) end haveTime = true end unless hExtent[:timePeriod].empty? @xml.tag!('mri:usageDateTime') do periodClass.writeXML(hExtent[:timePeriod]) end haveTime = true end if !haveTime @NameSpace.issueWarning(410, 'mri:usageDateTime', outContext) end end end if aExtents.empty? && @hResponseObj[:writerShowTags] @xml.tag!('mri:usageDateTime') end # usage - user determined limitations unless hUsage[:userLimitation].nil? @xml.tag!('mri:userDeterminedLimitations') do @xml.tag!('gco:CharacterString', hUsage[:userLimitation]) end end if hUsage[:userLimitation].nil? && @hResponseObj[:writerShowTags] @xml.tag!('mri:userDeterminedLimitations') end # usage - user contact info [] {CI_Responsibility} aResponsibility = hUsage[:userContacts] aResponsibility.each do |hResponsibility| @xml.tag!('mri:userContactInfo') do responsibilityClass.writeXML(hResponsibility, outContext) end end if aResponsibility.empty? && @hResponseObj[:writerShowTags] @xml.tag!('mri:userContactInfo') end # usage - response [] aResponses = hUsage[:limitationResponses] aResponses.each do |hResponse| @xml.tag!('mri:response') do @xml.tag!('gco:CharacterString', hResponse) end end if aResponses.empty? && @hResponseObj[:writerShowTags] @xml.tag!('mri:response') end # usage - additional documentation [] {CI_Citation} aDocuments = hUsage[:additionalDocumentation] aDocuments.each do |hDocument| @xml.tag!('mri:additionalDocumentation') do citationClass.writeXML(hDocument, outContext) end end if aDocuments.empty? && @hResponseObj[:writerShowTags] @xml.tag!('mri:additionalDocumentation') end # usage - identification issues {CI_Citation} unless hUsage[:identifiedIssue].empty? @xml.tag!('mri:identifiedIssues') do citationClass.writeXML(hUsage[:identifiedIssue], outContext) end end if hUsage[:identifiedIssue].empty? && @hResponseObj[:writerShowTags] @xml.tag!('mri:identifiedIssues') end end # mri:MD_Usage tag end