module ADIWG::Mdtranslator::Writers::Iso19110
Constants
- VERSION
Public Class Methods
findMessage(messageId)
click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19110/iso19110_writer.rb, line 82 def self.findMessage(messageId) @aMessagesList.each do |hMessage| if hMessage['id'] == messageId return hMessage['message'] end end return nil end
getContact(contactId)
click to toggle source
find contact in contact array and return the contact hash
# File lib/adiwg/mdtranslator/writers/iso19110/iso19110_writer.rb, line 63 def self.getContact(contactId) @contacts.each do |contact| if contact[:contactId] == contactId return contact end end return {} end
getDomain(domainId)
click to toggle source
find domain in domain array and return the domain hash
# File lib/adiwg/mdtranslator/writers/iso19110/iso19110_writer.rb, line 73 def self.getDomain(domainId) @domains.each do |domain| if domain[:domainId] == domainId return domain end end return {} end
issueError(messageId, context = nil)
click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19110/iso19110_writer.rb, line 91 def self.issueError(messageId, context = nil) message = findMessage(messageId) unless message.nil? message += ': CONTEXT is ' + context unless context.nil? @hResponseObj[:writerMessages] << 'ERROR: ISO-19110 writer: ' + message @hResponseObj[:writerPass] = false end end
issueNotice(messageId, context = nil)
click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19110/iso19110_writer.rb, line 117 def self.issueNotice(messageId, context = nil) message = findMessage(messageId) unless message.nil? message += ': CONTEXT is ' + context unless context.nil? @hResponseObj[:writerMessages] << 'NOTICE: ISO-19110 writer: ' + message end end
issueWarning(messageId, tag = nil, context = nil)
click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19110/iso19110_writer.rb, line 100 def self.issueWarning(messageId, tag = nil, context = nil) message = findMessage(messageId) unless message.nil? message += ': CONTEXT is ' + context unless context.nil? if @hResponseObj[:writerForceValid] if tag.nil? issueError(messageId, context) else @xml.tag!(tag, {'gco:nilReason' => 'missing'}) @hResponseObj[:writerMessages] << 'WARNING: ISO-19110 writer: ' + message end else @hResponseObj[:writerMessages] << 'WARNING: ISO-19110 writer: ' + message end end end
startWriter(intObj, hResponseObj, whichDict = 0, embed = false)
click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19110/iso19110_writer.rb, line 24 def self.startWriter(intObj, hResponseObj, whichDict = 0, embed = false) # load error message array file = File.join(File.dirname(__FILE__), 'iso19110_writer_messages_eng') + '.yml' hMessageList = YAML.load_file(file) @aMessagesList = hMessageList['messageList'] # make objects available to the instance @intObj = intObj @contacts = intObj[:contacts] @hResponseObj = hResponseObj if intObj[:dataDictionaries].empty? issueError(110) return nil end if intObj[:dataDictionaries].length > 1 issueNotice(111) end hDictionary = intObj[:dataDictionaries][whichDict] @domains = hDictionary[:domains] # set the format of the output file based on the writer specified hResponseObj[:writerOutputFormat] = 'xml' hResponseObj[:writerVersion] = ADIWG::Mdtranslator::Writers::Iso19110::VERSION # create new XML document @xml = Builder::XmlMarkup.new(indent: 3) # start writing the ISO 19110 XML record metadataWriter = FC_FeatureCatalogue.new(@xml, hResponseObj) metadata = metadataWriter.writeXML(hDictionary, embed) return metadata end