Laurent Dami > DBIx-DataModel-2.43 > DBIx::DataModel::Meta::Schema

Download:
DBIx-DataModel-2.43.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Source  

NAME ^

DBIx::DataModel::Meta::Schema - Meta-information about a DBIx::DataModel schema

SYNOPSIS ^

See synopsis in DBIx::DataModel.

DESCRIPTION ^

An instance of this class holds meta-information about a DBIx::DataModel schema; so it is called a meta-schema. Within the schema class, the metadm method points to the meta-schema; within the meta-schema instance, the class method points to the associated class. Both are created together: the new() method simultaneously builds a subclass of DBIx::DataModel::Schema, and an instance of DBIx::DataModel::Meta::Schema.

The meta-schema instance contains information about :

and it contains methods for declaring those meta-objects.

CONSTRUCTOR ^

new

  my $meta_schema = DBIx::DataModel::Meta::Schema->new(%args);

Simultaneously creates a new subclass of DBIx::DataModel::Schema, and an new instance of DBIx::DataModel::Meta::Schema. Arguments are described in the reference documentation.

FRONT-END METHODS FOR DECLARING SCHEMA MEMBERS ^

Table

  $meta_schema->Table($class_name, $db_name, @primary_key, \%options);

View

  $meta_schema->View($class_name, $columns, $db_tables, 
                     \%where, @parent_tables);

Association

  $schema->Association([$class1, $role1, $multiplicity1, @columns1],
                       [$class2, $role2, $multiplicity2, @columns2]);

Composition

  $schema->Composition([$class1, $role1, $multiplicity1, @columns1], 
                       [$class2, $role2, $multiplicity2, @columns2]);

Type

  $meta_schema->Type($type_name => 
     $handler_name_1 => sub { ... },
     ...
   );

PRIVATE METHODS ^

_parse_association_end

Utility methods for parsing both ends of an association declaration.

_parse_join_path

Utility method for parsing arguments to "join", finding the most appropriate source for each path item, retrieving implicit left or inner connectors, and keeping track of aliases.

syntax highlighting: