class Aws::Xml::Parser::StructureFrame

def apply_default_value(name, shape)

def apply_default_value(name, shape)
  case shape
  when Seahorse::Model::Shapes::List then @result[name] = DefaultList.new
  when Seahorse::Model::Shapes::Map then @result[name] = {}
  end
end

def child_frame(xml_name)

def child_frame(xml_name)
  if @member = @members[xml_name]
    Frame.new(self, @member[:shape])
  else
    NullFrame.new(self)
  end
end

def consume_child_frame(child)

def consume_child_frame(child)
  case child
  when MapEntryFrame
    @result[@member[:name]][child.key.result] = child.value.result
  when FlatListFrame
    @result[@member[:name]] << child.result
  when NullFrame
  else
    @result[@member[:name]] = child.result
  end
end

def initialize(parent, shape, result = nil)

def initialize(parent, shape, result = nil)
  super
  @result ||= Structure.new(shape.member_names)
  @members = {}
  shape.members.each do |member_name, member_shape|
    apply_default_value(member_name, member_shape)
    @members[xml_name(member_shape)] = {
      name: member_name,
      shape: member_shape,
    }
  end
end

def xml_name(member_shape)

def xml_name(member_shape)
  if member_shape.type == 'list' && member_shape.definition['flattened']
    member_shape.member.location_name || member_shape.location_name
  else
    member_shape.location_name
  end
end