---
name: "Declare::Constraints::Simple::Library::OO"
section: "3pm"
platform: "linux"
package: "libdeclare-constraints-simple-perl"
version: "0.03-1.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Declare::Constraints::Simple::Library::OO"
---

# Declare::Constraints::Simple::Library::OO(3pm)

OO Constraints

## NAME

Declare::Constraints::Simple::Library::OO - OO Constraints

## SYNOPSIS

```
  # accept objects or classes
  my $object_or_class = Or( IsObject, IsClass );
  # valid on objects with all methods
  my $proper_object = And( IsObject,
                           HasMethods( qw(foo bar) ));
  # validate against date objects
  my $is_date_object = IsA('DateTime');
```

## DESCRIPTION

This library contains the constraints for validating parameters in an object oriented manner.

## CONSTRAINTS

### HasMethods(@methods)

Returns true if the value is an object or class that `"can"` all the specified `@methods`.

The stack or path part of `"HasMethods"` looks like `"HasMethods[$method]"` where `$method` is the first found missing method.

### IsA(@classes)

Is true if the passed object or class is a subclass of one of the classes mentioned in `@classes`.

### IsClass()

Valid if value is a loaded class.

### IsObject()

True if the value is blessed.

## SEE ALSO

Declare::Constraints::Simple, Declare::Constraints::Simple::Library

## AUTHOR

Robert 'phaylon' Sedlacek `"<phaylon@dunkelheit.at>"`

## LICENSE AND COPYRIGHT

This module is free software, you can redistribute it and/or modify it  under the same terms as perl itself.
