SubClassDataInterface::hasProperty()
last analyzed

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 1
c 0
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
/**
4
 * Created by PhpStorm.
5
 * User: benedikt
6
 * Date: 1/30/18
7
 * Time: 5:32 PM
8
 */
9
10
namespace Tfboe\FmLib\Entity\Helpers;
11
12
13
use Tfboe\FmLib\Exceptions\PropertyNotExistingException;
14
15
/**
16
 * Interface SubClassDataInterface
17
 * @package Tfboe\FmLib\Entity\Helpers
18
 */
19
interface SubClassDataInterface
20
{
21
//<editor-fold desc="Public Methods">
22
  /**
23
   * Adds an subclass property if it is not already existent. The default value is used as value.
24
   * @param string $name the property name
25
   * @param mixed $default the default value for the property
26
   * @return $this|SubClassData
27
   */
28
  public function addPropertyIfNotExistent(string $name, $default);
29
30
  /**
31
   * clones the subclass data from other into this
32
   * @param SubClassData $other
0 ignored issues
show
introduced by
The type SubClassData for parameter $other is a trait, and thus cannot be used for type-hinting in PHP. Maybe consider adding an interface and use that for type-hinting?
Loading history...
33
   */
34
  public function cloneSubClassDataFrom($other);
35
36
  /**
37
   * Gets a property or throws an error if the property does not exist.
38
   * @param string $name the name of the property
39
   * @return mixed the value of the property
40
   * @throws PropertyNotExistingException
41
   */
42
  public function getProperty($name);
43
44
  /**
45
   * Checks if the contains the given property as subclass data.
46
   * @param string $property the property name
47
   * @return bool true if it has the property and false otherwise
48
   */
49
  public function hasProperty(string $property): bool;
50
51
  /**
52
   * Initializes the subclassData structure and adds the given keys with null values to it.
53
   * @param string[] $keys the keys of the subclass data properties (the names).
54
   * @return $this|SubClassData
55
   */
56
  public function initSubClassData(array $keys);
57
58
  /**
59
   * Checks if a method with the given name exists considering also getter and setter for subclass properties
60
   * @param string $method
61
   * @return bool
62
   */
63
  public function methodExists(string $method): bool;
64
65
  /**
66
   * Sets a property with the given name and the given value
67
   * @param string $name the name of the property to set
68
   * @param mixed $value the new value for the property
69
   * @return $this|SubClassData
70
   * @throws PropertyNotExistingException
71
   */
72
  public function setProperty(string $name, $value);
73
//</editor-fold desc="Public Methods">
74
}