/home/mjc1/public_html/plugin/nicepay/lib/nicepay/validator/BodyMessageValidatorFactory.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
require_once dirname(__FILE__).'/BankBodyMessageValidator.php';
require_once 
dirname(__FILE__).'/CardBodyMessageValidator.php';
require_once 
dirname(__FILE__).'/VBankBodyMessageValidator.php';
require_once 
dirname(__FILE__).'/VBankBulkBodyMessageValidator.php';
require_once 
dirname(__FILE__).'/CellPhoneBodyMessageValidator.php';
require_once 
dirname(__FILE__).'/CpBillBodyMessageValidator.php';
require_once 
dirname(__FILE__).'/CashReceiptBodyMessageValidator.php';
require_once 
dirname(__FILE__).'/BodyMessageValidator.php';
require_once 
dirname(__FILE__).'/BuyDecisionBodyMessageValidator.php';
require_once 
dirname(__FILE__).'/BuyRejectBodyMessageValidator.php';
require_once 
dirname(__FILE__).'/DeliveryRegisterBodyMessageValidator.php';
/**
 * 
 * @author kblee
 *
 */
class BodyMessageValidatorFactory{
    
    private static 
$BODY_MESSAGE_VALIDATOR_MAP;
    
    
/**
     * 
     */
    
public function BodyMessageValidatorFactory(){
        if(
BodyMessageValidatorFactory::$BODY_MESSAGE_VALIDATOR_MAP == null){
            
BodyMessageValidatorFactory::$BODY_MESSAGE_VALIDATOR_MAP = array();
            
BodyMessageValidatorFactory::$BODY_MESSAGE_VALIDATOR_MAP[BANK_PAY_METHOD] ="BankBodyMessageValidator";
            
BodyMessageValidatorFactory::$BODY_MESSAGE_VALIDATOR_MAP[CARD_PAY_METHOD] ="CardBodyMessageValidator";
            
BodyMessageValidatorFactory::$BODY_MESSAGE_VALIDATOR_MAP[VBANK_PAY_METHOD] ="VBankBodyMessageValidator";
            
BodyMessageValidatorFactory::$BODY_MESSAGE_VALIDATOR_MAP[CELLPHONE_PAY_METHOD] ="CellPhoneBodyMessageValidator";
            
BodyMessageValidatorFactory::$BODY_MESSAGE_VALIDATOR_MAP[VBANK_BULK_PAY_METHOD] ="VBankBulkBodyMessageValidator";
            
BodyMessageValidatorFactory::$BODY_MESSAGE_VALIDATOR_MAP[CPBILL_PAY_METHOD] ="CpBillBodyMessageValidator";
            
BodyMessageValidatorFactory::$BODY_MESSAGE_VALIDATOR_MAP[CASHRCPT_PAY_METHOD] ="CashReceiptBodyMessageValidator";
            
BodyMessageValidatorFactory::$BODY_MESSAGE_VALIDATOR_MAP[ESCROW_DELIVERY_REGISTER] ="DeliveryRegisterBodyMessageValidator";
            
BodyMessageValidatorFactory::$BODY_MESSAGE_VALIDATOR_MAP[ESCROW_BUY_DECISION] ="BuyDecisionBodyMessageValidator";
            
BodyMessageValidatorFactory::$BODY_MESSAGE_VALIDATOR_MAP[ESCROW_BUY_REJECT] ="BuyRejectBodyMessageValidator";
        }    
    }
    
    
/**
     * 
     * @param $payMethod
     */
    
public function createValidator($payMethod){
        
        
$validatorClazz null;
        
        
$validatorClazz BodyMessageValidatorFactory::$BODY_MESSAGE_VALIDATOR_MAP[$payMethod];
        
        if(
$validatorClazz!=null){
            
$reflectClass = new ReflectionClass($validatorClazz);
            if(
$reflectClass->implementsInterface("BodyMessageValidator") && $reflectClass->isInstantiable()){
                
$reflectClass->newInstance();
            }else{
                throw new 
Exception("As Creating BodyValidator, Break out Exception.. ");
            }
        }else{
            return 
null;
        }
        
    }
    
}
?>