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

NAME

       UR::Role::Prototype - Implementation for defining and composing roles

DESCRIPTION

       Basic info about using roles is described in the documentation for UR::Role.

       When a role is defined using the "role" keyword, it creates a UR::Role::Prototype
       instance.  Role prototypes represent an uncomposed role.  They have most of the same
       properties as UR::Object::Type instances.

   Methods
       property_data($property_name)
           Returns a hashref of property data about the named property.

       has_property_names()
           Returns a list of all the properties named in the role's "has".

       id_by_property_names()
           Returns a list of all the properties named in the roles's "id_by".

       method_names()
           Returns a list of all the function names in the role's namespace.

       define(%role_definition)
           Define a role and return the role prototype.

       role_name()
           Return the name of the role.

       class_names()
           Returns a list of the names of the classes composing this role.

       requires()
           Returns an arrayref of strings.  These strings must exist in composing classes, either
           as properties or methods.

       excludes()
           Returns an arrayref of role names that may not be composed with this role.

   Role namespace methods
       When a role is defined, these methods are injected into the role's namespace

       create(%params)
           Return a UR::Role::PrototypeWithParams object representing this role with a set of
           params immediately before it is composed into a class.  See the section on
           Parameterized Roles in UR::Role.

       __role__()
           Calls the above "create()" method with no arguments.  This is used by the role
           composition mechanism to trigger autoloading the role's module when role names are
           given as strings in a class definition.

SEE ALSO

       UR, UR::Object::Type::Initializer, UR::Role::Instance, UR::Role::PrototypeWithParams