]> git.mxchange.org Git - shipsimu.git/blobdiff - ship-simu/application/ship-simu/interfaces/class_Customer.php
Initial import of current development status
[shipsimu.git] / ship-simu / application / ship-simu / interfaces / class_Customer.php
diff --git a/ship-simu/application/ship-simu/interfaces/class_Customer.php b/ship-simu/application/ship-simu/interfaces/class_Customer.php
new file mode 100644 (file)
index 0000000..a49150e
--- /dev/null
@@ -0,0 +1,46 @@
+<?php
+/**
+ * An interface for all customers
+ *
+ * @author     Roland Haeder <roland __NOSPAM__ [at] __REMOVE_ME__ mxchange [dot] org>
+ * @version    0.1
+ */
+interface Customer extends FrameworkInterface {
+       /**
+        * Adds a contract to the customer's list
+        *
+        * @param               $contractInstance       A valid instance to WorksContract
+        * @return      void
+        */
+       function addNewWorksContract (WorksContract $contractInstance);
+
+       /**
+        * Signs a works contract.
+        *
+        * @param               $contractInstance                               A valid instance to WorksContract
+        * @param               $partnerInstance                                An instance the other
+        *                                                                              contract partner
+        * @return      void
+        * @throws      NullPointerException                    If an instance variable
+        *                                                                              is null
+        * @throws      NoObjectException                               If an instance variable
+        *                                                                              is not an object
+        * @throws      MissingMethodException                  If a required method was
+        *                                                                              not found in $contractInstance
+        * @throws      InvalidContractPartnerException If the in $contractInstance
+        *                                                                              set contract partner is
+        *                                                                              not the expected
+        */
+       function signContract (WorksContract $contractInstance, ContractPartner $partnerInstance);
+
+       /**
+        * Withdraw from a signed contract
+        *
+        * @param               $contractInstance       A valid instance to WorksContract
+        * @return      void
+        */
+       function withdrawFromContract (WorksContract $contractInstance);
+}
+
+// [EOF]
+?>