class ADIWG::Mdtranslator::Writers::Iso19115_1::Attribute

Public Class Methods

new(xml, hResponseObj) click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_1/classes/class_attribute.rb, line 20
def initialize(xml, hResponseObj)
   @xml = xml
   @hResponseObj = hResponseObj
   @NameSpace = ADIWG::Mdtranslator::Writers::Iso19115_1
end

Public Instance Methods

writeXML(hAttribute, inContext = nil) click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_1/classes/class_attribute.rb, line 26
def writeXML(hAttribute, inContext = nil)

   # classes used
   rangeClass = MD_RangeDimension.new(@xml, @hResponseObj)
   sampleClass = MD_SampleDimension.new(@xml, @hResponseObj)
   mdBandClass = MD_Band.new(@xml, @hResponseObj)
   miBandClass = MI_Band.new(@xml, @hResponseObj)

   outContext = 'attribute'
   outContext = inContext + ' attribute' unless inContext.nil?

   unless hAttribute.empty?

      # determine attribute classes to output
      attributeTag = nil
      unless hAttribute[:sequenceIdentifier].nil? &&
         hAttribute[:sequenceIdentifierType].nil? &&
         hAttribute[:attributeDescription].nil? &&
         hAttribute[:attributeIdentifiers].nil?
         attributeTag = 'mrc:MD_RangeDimension'
      end
      unless hAttribute[:maxValue].nil? &&
         hAttribute[:minValue].nil? &&
         hAttribute[:units].nil? &&
         hAttribute[:scaleFactor].nil? &&
         hAttribute[:offset].nil? &&
         hAttribute[:meanValue].nil? &&
         hAttribute[:numberOfValues].nil? &&
         hAttribute[:standardDeviation].nil? &&
         hAttribute[:bitsPerValue].nil?
         attributeTag = 'mrc:MD_SampleDimension'
      end
      unless hAttribute[:boundMin].nil? &&
         hAttribute[:boundMax].nil? &&
         hAttribute[:boundUnits].nil? &&
         hAttribute[:peakResponse].nil? &&
         hAttribute[:toneGradations].nil?
         attributeTag = 'mrc:MD_Band'
      end
      unless hAttribute[:bandBoundaryDefinition].nil? &&
         hAttribute[:nominalSpatialResolution].nil? &&
         hAttribute[:transferFunctionType].nil? &&
         hAttribute[:transmittedPolarization].nil? &&
         hAttribute[:detectedPolarization].nil?
         attributeTag = 'mrc:MI_Band'
      end

      unless attributeTag.nil?
         @xml.tag!(attributeTag) do
            if attributeTag == 'mrc:MD_RangeDimension'
               rangeClass.writeXML(hAttribute, outContext)
            end
            if attributeTag == 'mrc:MD_SampleDimension'
               rangeClass.writeXML(hAttribute, outContext)
               sampleClass.writeXML(hAttribute, outContext)
            end
            if attributeTag == 'mrc:MD_Band'
               rangeClass.writeXML(hAttribute, outContext)
               sampleClass.writeXML(hAttribute, outContext)
               mdBandClass.writeXML(hAttribute)
            end
            if attributeTag == 'mrc:MI_Band'
               rangeClass.writeXML(hAttribute, outContext)
               sampleClass.writeXML(hAttribute, outContext)
               mdBandClass.writeXML(hAttribute)
               miBandClass.writeXML(hAttribute)
            end
         end
      end
      if attributeTag.nil?
         @NameSpace.issueWarning(42, 'mrc:attribute', outContext)
      end

   end

end