class ADIWG::Mdtranslator::Writers::Fgdc::MetadataInformation
Public Class Methods
new(xml, hResponseObj)
click to toggle source
# File lib/adiwg/mdtranslator/writers/fgdc/classes/class_metadataInfo.rb, line 18 def initialize(xml, hResponseObj) @xml = xml @hResponseObj = hResponseObj @NameSpace = ADIWG::Mdtranslator::Writers::Fgdc end
Public Instance Methods
writeXML(hMetadataInfo)
click to toggle source
# File lib/adiwg/mdtranslator/writers/fgdc/classes/class_metadataInfo.rb, line 24 def writeXML(hMetadataInfo) # classes used contactClass = Contact.new(@xml, @hResponseObj) # metadata information 7.1 (metd) - metadata date (required) # <- metadataInfo.metadataDates[] type = 'creation' (required) # take first haveCreation = false hMetadataInfo[:metadataDates].each do |hDate| unless hDate.empty? unless hDate[:dateType].nil? if hDate[:dateType] == 'creation' createDate = AdiwgDateTimeFun.stringDateFromDateTime(hDate[:date], hDate[:dateResolution]) createDate.gsub!(/[-]/,'') unless createDate == 'ERROR' @xml.tag!('metd', createDate) haveCreation = true end break end end end end unless haveCreation @NameSpace.issueWarning(320, nil, 'metadata information section') end # metadata information 7.2 (metrd) - metadata review date # <- metadataInfo.metadataDates[] type = 'review' # take first haveReview = false hMetadataInfo[:metadataDates].each do |hDate| unless hDate.empty? unless hDate[:dateType].nil? if hDate[:dateType] == 'review' reviewDate = AdiwgDateTimeFun.stringDateFromDateTime(hDate[:date], hDate[:dateResolution]) reviewDate.gsub!(/[-]/,'') unless reviewDate == 'ERROR' @xml.tag!('metrd', reviewDate) haveReview = true end break end end end end if !haveReview && @hResponseObj[:writerShowTags] @xml.tag!('metrd') end # metadata information 7.3 (metfrd) - metadata future review date # <- metadataInfo.metadataDates[] type = 'nextReview' # take first haveNext = false hMetadataInfo[:metadataDates].each do |hDate| unless hDate.empty? unless hDate[:dateType].nil? if hDate[:dateType] == 'nextReview' nextDate = AdiwgDateTimeFun.stringDateFromDateTime(hDate[:date], hDate[:dateResolution]) nextDate.gsub!(/[-]/,'') unless nextDate == 'ERROR' @xml.tag!('metfrd', nextDate) haveNext = true end break end end end end if !haveNext && @hResponseObj[:writerShowTags] @xml.tag!('metfrd') end # metadata information 7.4 (metc) - metadata contact {contact} (required) # <- metadataInfo.metadataContacts[] role = 'pointOfContact' unless hMetadataInfo[:metadataContacts].empty? aRParties = hMetadataInfo[:metadataContacts] aParties = @NameSpace.find_responsibility(aRParties, 'pointOfContact') unless aParties.empty? hContact = @NameSpace.get_contact(aParties[0]) unless hContact.empty? @xml.tag!('metc') do contactClass.writeXML(hContact) end end end end if hMetadataInfo[:metadataContacts].empty? @NameSpace.issueWarning(321, nil, 'metadata information section') end # metadata information 7.5 (metstdn) - metadata standard name (required) @xml.tag!('metstdn', 'Content Standard for Digital Geospatial Metadata with Biological Data Profile') # metadata information 7.6 (metstdv) - metadata standard version (required) @xml.tag!('metstdv', 'FGDC-STD-001.1-1999') # metadata information 7.7 (mettc) - metadata time conversion (required) # required if time elements are present in metadata # don't know how to handle this, leaving it out # metadata information 7.8 (metac) - metadata access constraint # <- metadataInfo.metadataConstraints.type=legal.accessCode[0] haveAccess = false hMetadataInfo[:metadataConstraints].each do |hConstraint| if hConstraint[:type] == 'legal' unless hConstraint[:legalConstraint].empty? unless hConstraint[:legalConstraint][:accessCodes].empty? @xml.tag!('metac', hConstraint[:legalConstraint][:accessCodes][0]) haveAccess = true end end end end if !haveAccess && @hResponseObj[:witerShowTags] @xml.tag!('metac') end # metadata information 7.9 (metuc) - metadata user constraint # <- metadataInfo.metadataConstraints.type=legal.useCode[0] haveUse = false hMetadataInfo[:metadataConstraints].each do |hConstraint| if hConstraint[:type] == 'legal' unless hConstraint[:legalConstraint].empty? unless hConstraint[:legalConstraint][:useCodes].empty? @xml.tag!('metuc', hConstraint[:legalConstraint][:useCodes][0]) haveUse = true end end end end if !haveUse && @hResponseObj[:witerShowTags] @xml.tag!('metuc') end # metadata information 7.10 (metsi) - metadata user constraint # <- metadataInfo.metadataConstraints.type=security haveSecurity = false hMetadataInfo[:metadataConstraints].each do |hConstraint| if hConstraint[:type] == 'security' unless hConstraint[:securityConstraint].empty? @xml.tag!('metsi') do haveSecurity = true hSecurity = hConstraint[:securityConstraint] # security information 10.7.1 (metscs) - metadata security classification system (required) # <- securityConstraint.classSystem unless hSecurity[:classSystem].nil? @xml.tag!('metscs', hSecurity[:classSystem]) end if hSecurity[:classSystem].nil? @NameSpace.issueWarning(340, 'metscs', 'metadata information section') end # security information 10.7.2 (metsc) - metadata security classification (required) # <- securityConstraint.classCode unless hSecurity[:classCode].nil? @xml.tag!('metsc', hSecurity[:classCode]) end if hSecurity[:classCode].nil? @NameSpace.issueWarning(341, 'metsc', 'metadata information section') end # security information 10.7.3 (metshd) - metadata security classification (required) # <- securityConstraint.handling unless hSecurity[:handling].nil? @xml.tag!('metshd', hSecurity[:handling]) end if hSecurity[:handling].nil? @NameSpace.issueWarning(342, 'metshd', 'metadata information section') end end end end end if !haveSecurity && @hResponseObj[:writerShowTags] @xml.tag!('metsi') end end