class OCI8

def get_tdo_by_metadata(metadata)

Other tags:
    Private: -

Returns:
  • (OCI8::TDO) -

Parameters:
  • metadata (OCI8::Metadata::Base's subclass) --
def get_tdo_by_metadata(metadata)
  @id_to_tdo ||= {}
  @name_to_tdo ||= {}
  tdo = @id_to_tdo[metadata.tdo_id]
  return tdo if tdo
  schema_name = metadata.schema_name
  name = metadata.name
  full_name = schema_name + '.' + name
  klass = OCI8::Object::Base.get_class_by_typename(full_name)
  klass = OCI8::Object::Base.get_class_by_typename(name) if klass.nil?
  if klass.nil?
    if schema_name == username
      eval <<EOS
dule Object
class #{name.downcase.gsub(/(^|_)(.)/) { $2.upcase }} < OCI8::Object::Base
  set_typename('#{name}')
end
d
S
      klass = OCI8::Object::Base.get_class_by_typename(name)
    else
      eval <<EOS
dule Object
module #{schema_name.downcase.gsub(/(^|_)(.)/) { $2.upcase }}
  class #{name.downcase.gsub(/(^|_)(.)/) { $2.upcase }} < OCI8::Object::Base
    set_typename('#{full_name}')
  end
end
d
S
      klass = OCI8::Object::Base.get_class_by_typename(full_name)
    end
  end
  OCI8::TDO.new(self, metadata, klass)
end