1: <?php
2:
3: namespace Charcoal\Object;
4:
5: /**
6: * Defines objects that can be associated to one or more categories.
7: *
8: * @see \Charcoal\Object\CategorizableInterface For objects that can only belong to a single category.
9: */
10: interface CategorizableMultipleInterface
11: {
12: /**
13: * Set the type of category the object can belong to.
14: *
15: * @param string $type The category type.
16: * @return CategorizableMultipleInterface Chainable
17: */
18: public function setCategoryType($type);
19:
20: /**
21: * Retrieve the type of category the object can belong to.
22: *
23: * @return string
24: */
25: public function categoryType();
26:
27: /**
28: * Set the categories the object belongs to.
29: *
30: * @param array|Traversable $categories The object's categories.
31: * @return CategorizableMultipleInterface Chainable
32: */
33: public function setCategories($categories);
34:
35: /**
36: * Retrieve the categories the object belongs to.
37: *
38: * @return array|Traversable
39: */
40: public function categories();
41: }
42: