Mark V
1: <?php
2: namespace MOC\V\Component\Documentation;
3:
4: use MOC\V\Component\Documentation\Component\Bridge\Repository\ApiGen;
5: use MOC\V\Component\Documentation\Component\IBridgeInterface;
6: use MOC\V\Component\Documentation\Component\IVendorInterface;
7: use MOC\V\Component\Documentation\Component\Parameter\Repository\DirectoryParameter;
8: use MOC\V\Component\Documentation\Component\Parameter\Repository\ExcludeParameter;
9:
10: /**
11: * Class Documentation
12: *
13: * @package MOC\V\Component\Documentation
14: */
15: class Documentation implements IVendorInterface
16: {
17:
18: /** @var IVendorInterface $VendorInterface */
19: private $VendorInterface = null;
20:
21: /**
22: * @param IVendorInterface $VendorInterface
23: */
24: public function __construct(IVendorInterface $VendorInterface)
25: {
26:
27: $this->setVendorInterface($VendorInterface);
28: }
29:
30: /**
31: * @param string $Project
32: * @param string $Title
33: * @param DirectoryParameter $Source
34: * @param DirectoryParameter $Destination
35: * @param null|ExcludeParameter $Exclude
36: *
37: * @return IBridgeInterface
38: */
39: public static function getDocumentation(
40: $Project,
41: $Title,
42: DirectoryParameter $Source,
43: DirectoryParameter $Destination,
44: ExcludeParameter $Exclude = null
45: ) {
46:
47: return self::getApiGenDocumentation($Project, $Title, $Source, $Destination, $Exclude);
48: }
49:
50: /**
51: * @param string $Project
52: * @param string $Title
53: * @param DirectoryParameter $Source
54: * @param DirectoryParameter $Destination
55: * @param null|ExcludeParameter $Exclude
56: *
57: * @return IBridgeInterface
58: */
59: public static function getApiGenDocumentation(
60: $Project,
61: $Title,
62: DirectoryParameter $Source,
63: DirectoryParameter $Destination,
64: ExcludeParameter $Exclude = null
65: ) {
66:
67: return new ApiGen($Project, $Title, $Source, $Destination, $Exclude);
68: }
69:
70: /**
71: * @return IBridgeInterface
72: */
73: public function getBridgeInterface()
74: {
75:
76: return $this->VendorInterface->getBridgeInterface();
77: }
78:
79: /**
80: * @return IVendorInterface
81: */
82: public function getVendorInterface()
83: {
84:
85: return $this->VendorInterface;
86: }
87:
88: /**
89: * @param IVendorInterface $VendorInterface
90: *
91: * @return IVendorInterface
92: */
93: public function setVendorInterface(IVendorInterface $VendorInterface)
94: {
95:
96: $this->VendorInterface = $VendorInterface;
97: return $this;
98: }
99:
100: /**
101: * @param IBridgeInterface $BridgeInterface
102: *
103: * @return IBridgeInterface
104: */
105: public function setBridgeInterface(IBridgeInterface $BridgeInterface)
106: {
107:
108: return $this->VendorInterface->setBridgeInterface($BridgeInterface);
109: }
110: }
111: