.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Tangence::Meta::Class 3pm" .TH Tangence::Meta::Class 3pm "2021-04-30" "perl v5.32.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" "Tangence::Meta::Class" \- structure representing one "Tangence" class .SH "DESCRIPTION" .IX Header "DESCRIPTION" This data structure object stores information about one Tangence class. Once constructed and defined, such objects are immutable. .SH "CONSTRUCTOR" .IX Header "CONSTRUCTOR" .SS "new" .IX Subsection "new" .Vb 1 \& $class = Tangence::Meta::Class\->new( name => $name ) .Ve .PP Returns a new instance representing the given name. .SS "define" .IX Subsection "define" .Vb 1 \& $class\->define( %args ) .Ve .PP Provides a definition for the class. .IP "methods => \s-1HASH\s0" 8 .IX Item "methods => HASH" .PD 0 .IP "events => \s-1HASH\s0" 8 .IX Item "events => HASH" .IP "properties => \s-1HASH\s0" 8 .IX Item "properties => HASH" .PD Optional \s-1HASH\s0 references containing metadata about methods, events and properties, as instances of Tangence::Meta::Method, Tangence::Meta::Event or Tangence::Meta::Property. .IP "superclasses => \s-1ARRAY\s0" 8 .IX Item "superclasses => ARRAY" Optional \s-1ARRAY\s0 reference containing superclasses as \&\f(CW\*(C`Tangence::Meta::Class\*(C'\fR references. .SH "ACCESSORS" .IX Header "ACCESSORS" .SS "defined" .IX Subsection "defined" .Vb 1 \& $defined = $class\->defined .Ve .PP Returns true if a definintion for the class has been provided using \f(CW\*(C`define\*(C'\fR. .SS "name" .IX Subsection "name" .Vb 1 \& $name = $class\->name .Ve .PP Returns the name of the class .SS "perlname" .IX Subsection "perlname" .Vb 1 \& $perlname = $class\->perlname .Ve .PP Returns the perl name of the class. This will be the Tangence name, with dots replaced by double colons (\f(CW\*(C`::\*(C'\fR). .SS "direct_superclasses" .IX Subsection "direct_superclasses" .Vb 1 \& @superclasses = $class\->direct_superclasses .Ve .PP Return the direct superclasses in a list of \f(CW\*(C`Tangence::Meta::Class\*(C'\fR references. .SS "direct_methods" .IX Subsection "direct_methods" .Vb 1 \& $methods = $class\->direct_methods .Ve .PP Return the methods that this class directly defines (rather than inheriting from superclasses) as a \s-1HASH\s0 reference mapping names to Tangence::Meta::Method instances. .SS "direct_events" .IX Subsection "direct_events" .Vb 1 \& $events = $class\->direct_events .Ve .PP Return the events that this class directly defines (rather than inheriting from superclasses) as a \s-1HASH\s0 reference mapping names to Tangence::Meta::Event instances. .SS "direct_properties" .IX Subsection "direct_properties" .Vb 1 \& $properties = $class\->direct_properties .Ve .PP Return the properties that this class directly defines (rather than inheriting from superclasses) as a \s-1HASH\s0 reference mapping names to Tangence::Meta::Property instances. .SH "AGGREGATE ACCESSORS" .IX Header "AGGREGATE ACCESSORS" The following accessors inspect the full inheritance tree of this class and all its superclasses .SS "superclasses" .IX Subsection "superclasses" .Vb 1 \& @superclasses = $class\->superclasses .Ve .PP Return all the superclasses in a list of unique \f(CW\*(C`Tangence::Meta::Class\*(C'\fR references. .SS "methods" .IX Subsection "methods" .Vb 1 \& $methods = $class\->methods .Ve .PP Return all the methods available to this class as a \s-1HASH\s0 reference mapping names to Tangence::Meta::Method instances. .SS "method" .IX Subsection "method" .Vb 1 \& $method = $class\->method( $name ) .Ve .PP Return the named method as a Tangence::Meta::Method instance, or \f(CW\*(C`undef\*(C'\fR if no such method exists. .SS "events" .IX Subsection "events" .Vb 1 \& $events = $class\->events .Ve .PP Return all the events available to this class as a \s-1HASH\s0 reference mapping names to Tangence::Meta::Event instances. .SS "event" .IX Subsection "event" .Vb 1 \& $event = $class\->event( $name ) .Ve .PP Return the named event as a Tangence::Meta::Event instance, or \f(CW\*(C`undef\*(C'\fR if no such event exists. .SS "properties" .IX Subsection "properties" .Vb 1 \& $properties = $class\->properties .Ve .PP Return all the properties available to this class as a \s-1HASH\s0 reference mapping names to Tangence::Meta::Property instances. .SS "property" .IX Subsection "property" .Vb 1 \& $property = $class\->property( $name ) .Ve .PP Return the named property as a Tangence::Meta::Property instance, or \&\f(CW\*(C`undef\*(C'\fR if no such property exists. .SH "AUTHOR" .IX Header "AUTHOR" Paul Evans