-
Notifications
You must be signed in to change notification settings - Fork 0
/
ClassMetadataInterface.php
88 lines (75 loc) · 1.67 KB
/
ClassMetadataInterface.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
/**
* This file is part of the Cubiche package.
*
* Copyright (c) Cubiche
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Cubiche\Core\Metadata;
/**
* ClassMetadata interface.
*
* @author Ivannis Suárez Jerez <ivannis.suarez@gmail.com>
*/
interface ClassMetadataInterface
{
/**
* @return string
*/
public function className();
/**
* @return \ReflectionClass
*/
public function reflection();
/**
* @return array
*/
public function methodsMetadata();
/**
* @param MethodMetadata $metadata
*/
public function addMethodMetadata(MethodMetadata $metadata);
/**
* @param string $methodName
*
* @return MethodMetadata|null
*/
public function methodMetadata($methodName);
/**
* @return array
*/
public function propertiesMetadata();
/**
* @param PropertyMetadata $metadata
*/
public function addPropertyMetadata(PropertyMetadata $metadata);
/**
* @param string $propertyName
*
* @return PropertyMetadata|null
*/
public function propertyMetadata($propertyName);
/**
* @return array
*/
public function metadata();
/**
* @param string $key
* @param mixed $value
*/
public function addMetadata($key, $value);
/**
* @param string $key
*
* @return mixed|null
*/
public function getMetadata($key);
/**
* @param ClassMetadataInterface $object
*
* @return ClassMetadataInterface
*/
public function merge(ClassMetadataInterface $object);
}