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