* @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 (SignableContract $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 (SignableContract $contractInstance, ContractPartner $partnerInstance); /** * Withdraw from a signed contract * * @param $contractInstance A valid instance to WorksContract * @return void */ function withdrawFromContract (SignableContract $contractInstance); } // [EOF] ?>