New interface SignableContract introduced, some comments translated
[shipsimu.git] / application / ship-simu / interfaces / class_Customer.php
1 <?php
2 /**
3  * An interface for all customers
4  *
5  * @author      Roland Haeder <roland __NOSPAM__ [at] __REMOVE_ME__ mxchange [dot] org>
6  * @version     0.1
7  */
8 interface Customer extends FrameworkInterface {
9         /**
10          * Adds a contract to the customer's list
11          *
12          * @param               $contractInstance       A valid instance to WorksContract
13          * @return      void
14          */
15         function addNewWorksContract (SignableContract $contractInstance);
16
17         /**
18          * Signs a works contract.
19          *
20          * @param               $contractInstance                               A valid instance to WorksContract
21          * @param               $partnerInstance                                An instance the other
22          *                                                                              contract partner
23          * @return      void
24          * @throws      NullPointerException                    If an instance variable
25          *                                                                              is null
26          * @throws      NoObjectException                               If an instance variable
27          *                                                                              is not an object
28          * @throws      MissingMethodException                  If a required method was
29          *                                                                              not found in $contractInstance
30          * @throws      InvalidContractPartnerException If the in $contractInstance
31          *                                                                              set contract partner is
32          *                                                                              not the expected
33          */
34         function signContract (SignableContract $contractInstance, ContractPartner $partnerInstance);
35
36         /**
37          * Withdraw from a signed contract
38          *
39          * @param               $contractInstance       A valid instance to WorksContract
40          * @return      void
41          */
42         function withdrawFromContract (SignableContract $contractInstance);
43 }
44
45 // [EOF]
46 ?>