---
name: "Tangence::Meta::Class"
section: "3pm"
platform: "linux"
package: "libtangence-perl"
version: "0.33-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Tangence::Meta::Class"
---

# Tangence::Meta::Class(3pm)

structure representing one "Tangence" class

## NAME

"Tangence::Meta::Class" - structure representing one "Tangence" class

## DESCRIPTION

This data structure object stores information about one Tangence class. Once constructed and defined, such objects are immutable.

## CONSTRUCTOR

### new

```
   $class = Tangence::Meta::Class->new( name => $name )
```

Returns a new instance representing the given name.

### define

```
   $class->define( %args )
```

Provides a definition for the class.

- methods =\> HASH

  - events =\> HASH

  - properties =\> HASH

  Optional HASH references containing metadata about methods, events and properties, as instances of Tangence::Meta::Method, Tangence::Meta::Event or Tangence::Meta::Property.

- superclasses =\> ARRAY

  Optional ARRAY reference containing superclasses as `"Tangence::Meta::Class"` references.

## ACCESSORS

### defined

```
   $defined = $class->defined
```

Returns true if a definintion for the class has been provided using `"define"`.

### name

```
   $name = $class->name
```

Returns the name of the class

### perlname

```
   $perlname = $class->perlname
```

Returns the perl name of the class. This will be the Tangence name, with dots replaced by double colons (`"::"`).

### direct\_superclasses

```
   @superclasses = $class->direct_superclasses
```

Return the direct superclasses in a list of `"Tangence::Meta::Class"` references.

### direct\_methods

```
   $methods = $class->direct_methods
```

Return the methods that this class directly defines (rather than inheriting from superclasses) as a HASH reference mapping names to Tangence::Meta::Method instances.

### direct\_events

```
   $events = $class->direct_events
```

Return the events that this class directly defines (rather than inheriting from superclasses) as a HASH reference mapping names to Tangence::Meta::Event instances.

### direct\_properties

```
   $properties = $class->direct_properties
```

Return the properties that this class directly defines (rather than inheriting from superclasses) as a HASH reference mapping names to Tangence::Meta::Property instances.

## AGGREGATE ACCESSORS

The following accessors inspect the full inheritance tree of this class and all its superclasses

### superclasses

```
   @superclasses = $class->superclasses
```

Return all the superclasses in a list of unique `"Tangence::Meta::Class"` references.

### methods

```
   $methods = $class->methods
```

Return all the methods available to this class as a HASH reference mapping names to Tangence::Meta::Method instances.

### method

```
   $method = $class->method( $name )
```

Return the named method as a Tangence::Meta::Method instance, or `"undef"` if no such method exists.

### events

```
   $events = $class->events
```

Return all the events available to this class as a HASH reference mapping names to Tangence::Meta::Event instances.

### event

```
   $event = $class->event( $name )
```

Return the named event as a Tangence::Meta::Event instance, or `"undef"` if no such event exists.

### properties

```
   $properties = $class->properties
```

Return all the properties available to this class as a HASH reference mapping names to Tangence::Meta::Property instances.

### property

```
   $property = $class->property( $name )
```

Return the named property as a Tangence::Meta::Property instance, or `"undef"` if no such property exists.

## AUTHOR

Paul Evans \<leonerd@leonerd.org.uk\>
