class OCI8::NamedType

@private

def attributes

def attributes
  attrs = {}
  tdo.attributes.each do |attr|
    attr_val = get_attribute(attr.datatype, attr.typeinfo, attr.val_offset, attr.ind_offset)
    attr_val = attr.get_proc.call(attr_val) if attr.get_proc
    attrs[attr.name] = attr_val
  end
  attrs
end

def attributes=(obj)

def attributes=(obj)
  if obj.nil?
    self.null = true
  else
    obj = obj.instance_variable_get(:@attributes) unless obj.is_a? Hash
    tdo.attributes.each do |attr|
      attr_val = obj[attr.name]
      attr_val = attr.set_proc.call(attr_val) if attr.set_proc
      set_attribute(attr.datatype, attr.typeinfo, attr.val_offset, attr.ind_offset, attr_val)
    end
    self.null = false
  end
end

def to_value

def to_value
  return nil if self.null?
  obj = tdo.ruby_class.new
  obj.instance_variable_set(:@attributes, self.attributes)
  obj
end