class OCI8
def get_tdo_by_metadata(metadata)
- 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