UR::Object::Type->define( class_name => 'UR::Object::Reference', english_name => 'type has a', id_properties => ['tha_id'], properties => [ tha_id => { type => 'NUMBER', len => 10 }, accessor_name_for_id => { type => 'VARCHAR2', len => 64, is_optional => 1 }, accessor_name_for_object => { type => 'VARCHAR2', len => 64, is_optional => 1 }, class_name => { type => 'VARCHAR2', len => 64 }, constraint_name => { type => 'VARCHAR2', len => 32, is_optional => 1 }, delegation_name => { type => 'VARCHAR2', len => 64 }, description => { type => 'VARCHAR2', len => 64, is_optional => 1 }, r_class_name => { type => 'VARCHAR2', len => 64 }, r_delegation_name => { type => 'VARCHAR2', len => 64 }, r_type_name => { type => 'VARCHAR2', len => 64 }, source => { type => 'VARCHAR2', len => 64, is_optional => 1 }, type_name => { type => 'VARCHAR2', len => 64 }, ], );

NAME

UR::Object::Reference - Metadata about one class referring to another

SYNOPSIS

my $classobj = Some::Class->__meta__;
my @refs = $classobj->reference_metas;

my $remote_class_obj = $refs[0]->r_class_meta;

DESCRIPTION

This class implements the infrastructure metadata about how classes are linked to each other. Whenever the class initializer encounters an indirect property, a Reference object is created to denote the classes and properties involved in the link.

Instances of UR::Object::Reference are not created directly, but exist as a concequence of class metadata creation.

PROPERTIES

tha_id => Text

The ID property of UR::Object::Reference. Its value is a composite of the class name and the property name that triggered this Reference's creation.

class_name => Text

The name of the referencing class

r_class_name => Text

The name of the referenced class

delegation_name => Text

The delegated property name that triggered the creation of this Reference.

constraint_name => Text

If the delegated property was created as a result of a foreign key in a database, this contains the name of that constraint.

class_meta => UR::Object::Type

The class metaobject named by class_name

r_class_meta => UR::Object::Type

The class metaobject named by r_class_name

reference_property_metas => UR::Object::Reference::Property

The list of reference property objects belonging to this Reference

SEE ALSO

UR::Object::Reference::Property, UR::Object::Type, UR::Object::Type::Initializer