Provided by: libur-perl_0.410-1_all bug

NAME

       UR::Namespace - Manage collections of packages and classes

SYNOPSIS

       In a file called MyApp.pm:

         use UR;
         UR::Object::Type->define(
             class_name => 'MyApp',
             is => 'UR::Namespace',
         );

       Other programs, as well as modules in the MyApp subdirectory can now put

         use MyApp;

       in their code, and they will have access to all the classes and data under the MyApp tree.

DESCRIPTION

       A UR namespace is the top-level object that represents your data's class structure in the
       most general way.  After use-ing a namespace module, the program gets access to the module
       autoloader, which will automatically use modules on your behalf if you attempt to interact
       with their packages in a UR-y way, such as calling get().

       Most programs will not interact with the Namespace, except to "use" its package.

Methods

       get_material_classes
             my @class_metas = $namespace->get_material_classes();

           Return a list of UR::Object::Type class metadata object that exist in the given
           Namespace.  Note that this uses File::Find to find "*.pm" files under the Namespace
           directory and calls "UR::Object::Type->get($name)" for each package name to get the
           autoloader to use the package.  It's likely to be pretty slow.

       get_material_class_names
             my @class_names = $namespace->get_material_class_names()

           Return just the names of the classes produced by "get_material_classes".

       get_data_sources
             my @data_sources = $namespace->get_data_sources()

           Return the data source objects it finds defined under the DataSource subdirectory of
           the namespace.

       get_base_directory_name
             my $path = $namespace->get_base_directory_name()

           Returns the directory path where the Namespace module was loaded from.

SEE ALSO

       UR::Object::Type, UR::DataSource, UR::Context