class ADIWG::Mdtranslator::Writers::Fgdc::Identification
Public Class Methods
new(xml, hResponseObj)
click to toggle source
# File lib/adiwg/mdtranslator/writers/fgdc/classes/class_identification.rb, line 28 def initialize(xml, hResponseObj) @xml = xml @hResponseObj = hResponseObj @NameSpace = ADIWG::Mdtranslator::Writers::Fgdc end
Public Instance Methods
writeXML(intObj)
click to toggle source
# File lib/adiwg/mdtranslator/writers/fgdc/classes/class_identification.rb, line 34 def writeXML(intObj) # classes used citationClass = Citation.new(@xml, @hResponseObj) descriptionClass = Description.new(@xml, @hResponseObj) timePeriodClass = TimePeriod.new(@xml, @hResponseObj) statusClass = Status.new(@xml, @hResponseObj) spDomainClass = SpatialDomain.new(@xml, @hResponseObj) keywordClass = Keyword.new(@xml, @hResponseObj) contactClass = Contact.new(@xml, @hResponseObj) taxonomyClass = Taxonomy.new(@xml, @hResponseObj) constraintClass = Constraint.new(@xml, @hResponseObj) securityClass = Security.new(@xml, @hResponseObj) browseClass = Browse.new(@xml, @hResponseObj) hResourceInfo = intObj[:metadata][:resourceInfo] aAssocResource = intObj[:metadata][:associatedResources] outContext = 'identification section' # identification information 1.1 (citation) - citation (required) # <- hResourceInfo[:citation] hCitation = hResourceInfo[:citation] unless hCitation.empty? @xml.tag!('citation') do citationClass.writeXML(hCitation, aAssocResource, 'main resource citation') end end if hCitation.empty? @NameSpace.issueWarning(180, nil, outContext) end # identification information 1.2 (descript) - description (required) # <- hResourceInfo[:abstract,:purpose,:supplementalInfo] (required) haveDescription = false haveDescription = true unless hResourceInfo[:abstract].nil? haveDescription = true unless hResourceInfo[:purpose].nil? haveDescription = true unless hResourceInfo[:supplementalInfo].nil? if haveDescription @xml.tag!('descript') do descriptionClass.writeXML(hResourceInfo) end end unless haveDescription @NameSpace.issueWarning(181, nil, outContext) end # identification information 1.3 (timeperd) - time period of content (required) # <- hResourceInfo[:timePeriod] unless hResourceInfo[:timePeriod].empty? @xml.tag!('timeperd') do timePeriodClass.writeXML(hResourceInfo[:timePeriod], 'current') end end if hResourceInfo[:timePeriod].empty? @NameSpace.issueWarning(182, nil, outContext) end # identification information 1.4 (status) - status statusClass.writeXML(hResourceInfo) # identification information 1.5 (spdom) - spatial domain # not required under biological extension rules unless hResourceInfo[:extents].empty? spDomainClass.writeXML(hResourceInfo[:extents]) end # identification information 1.6 (keywords) - keywords [] (required) unless hResourceInfo[:keywords].empty? @xml.tag!('keywords') do keywordClass.writeXML(hResourceInfo[:keywords]) end end if hResourceInfo[:keywords].empty? @NameSpace.issueWarning(183, nil, outContext) end # identification information bio (taxonomy) - taxonomy unless hResourceInfo[:taxonomy].empty? @xml.tag!('taxonomy') do taxonomyClass.writeXML(hResourceInfo[:taxonomy][0], hResourceInfo[:keywords]) end end if hResourceInfo[:taxonomy].length > 1 @NameSpace.issueNotice(186) @NameSpace.issueNotice(187) end if hResourceInfo[:taxonomy].empty? && @hResponseObj[:writerShowTags] @xml.tag!('taxonomy') end # identification information 1.7 (accconst) - access constraint (required) # identification information 1.8 (useconst) - use constraint (required) unless hResourceInfo[:constraints].empty? constraintClass.writeXML(hResourceInfo[:constraints]) end if hResourceInfo[:constraints].empty? @NameSpace.issueWarning(184,'accconst', outContext) @NameSpace.issueWarning(185,'useconst', outContext) end # identification information 1.9 (ptcontac) - point of contact unless hResourceInfo[:pointOfContacts].empty? aRParties = hResourceInfo[:pointOfContacts] aParties = ADIWG::Mdtranslator::Writers::Fgdc.find_responsibility(aRParties, 'pointOfContact') unless aParties.empty? hContact = ADIWG::Mdtranslator::Writers::Fgdc.get_contact(aParties[0]) unless hContact.empty? @xml.tag!('ptcontac') do contactClass.writeXML(hContact) end end end end if hResourceInfo[:pointOfContacts].empty? && @hResponseObj[:writerShowTags] @xml.tag!('ptcontac') end # identification information 1.10 (browse) - browse graphic [] hResourceInfo[:graphicOverviews].each do |hGraphic| @xml.tag!('browse') do browseClass.writeXML(hGraphic) end end if hResourceInfo[:graphicOverviews].empty? && @hResponseObj[:writerShowTags] @xml.tag!('browse') end # identification information 1.11 (datacred) - dataset credit # <- concatenate resourceInfo.credits[] unless hResourceInfo[:credits].empty? dataCred = '' hResourceInfo[:credits].each do |credit| dataCred += credit + '; ' end dataCred.chomp!('; ') @xml.tag!('datacred', dataCred) end if hResourceInfo[:credits].empty? && @hResponseObj[:writerShowTags] @xml.tag!('datacred') end # identification information 1.12 (secinfo) - security information unless hResourceInfo[:constraints].empty? securityClass.writeXML(hResourceInfo[:constraints]) end if hResourceInfo[:constraints].empty? && @hResponseObj[:writerShowTags] @xml.tag!('secinfo') end # identification information 1.13 (native) - native dataset environment unless hResourceInfo[:environmentDescription].nil? @xml.tag!('native', hResourceInfo[:environmentDescription]) end if hResourceInfo[:environmentDescription].nil? && @hResponseObj[:writerShowTags] @xml.tag!('native') end # identification information 1.14 (crossref) - cross reference [] # <- associatedResources[:associationType] = 'crossReference' haveXRef = false aAssocResource.each do |hAssocRes| if hAssocRes[:associationType] == 'crossReference' haveXRef = true @xml.tag!('crossref') do citationClass.writeXML(hAssocRes[:resourceCitation], [], 'identification section cross reference') end end end if !haveXRef && @hResponseObj[:writerShowTags] @xml.tag!('crossref') end # identification information bio (tool) - analytical tool [] (not supported) end