Changeset 142
Author: Thiago Mata
(2009/06/29 05:00) Over 2 years ago
the code instrumentation receiver it is using the new match elements created recently
Author: Thiago Mata
(2009/06/29 05:00) Over 2 years ago
the code instrumentation receiver it is using the new match elements created recently
* Array with the name of the classes what should NOT enter into the diagram* Gate keeper of the classes into the diagram** If this array is empty, no class will be ignored to the diagram** @var String[]*/protected $arrIgnoredClasses = array();/*** Array with the name of the exclusive classes what should be into the diagram** If this array is empty, any class can enter into the diagram.** @var String[]*/protected $arrExclusiveClasses = array();/*** Array with the name of the methods what should NOT enter into the diagram* If this array is empty, no methods will be ignored to the diagram* @var MatchGatekeeper* The value can be just the "<method name>" or "<class name>::<method name>",* in this last case just in the informed class the method it is considered** @var String[]protected $arrIgnoredMethods = array();protected $objGatekeeperClasses;* Array with the Regex of the methods what should NOT enter into the diagram* Gate keeper of the methods into the diagram* If this array is empty, no methods will be ignored to the diagram* @var MatchGatekeeper* The value can be any regular expression what will be match with the* "<method name>" or "<class name>::<method name>",** @var String[]protected $arrIgnoredMethodsRegex = array();protected $objGatekeeperMethods;* Array with the exclusive methods name what should be into the diagram** If this array is empty, any method can enter into the diagram.* The value can be just the "<method name>" or "<class name>::<method name>",* in this last case just in the informed class the method it is considered** @var String[]*/protected $arrExclusiveMethods = array();/*** Array with the exclusive methods regex what should be into the diagram** If this array is empty, any method can enter into the diagram.* The value can be any regular expression what will be match with* the "<method name>" or "<class name>::<method name>"** @var String[]*/protected $arrExclusiveMethodsRegex = array();/*** Set the array with the ignored class into the diagram* Set the gate keeper to the classes into the diagram** @see CodeInstrumentationReceiver->arrIgnoredClasses* @see CodeInstrumentationReceiver::getIgnoredClasses()* @param String[] $arrIgnoredClasses* @return CodeInstrumentationReceiver me*/public function setIgnoredClasses( array $arrIgnoredClasses ){$this->arrIgnoredClasses = $arrIgnoredClasses;return $this;}/*** get the array with the ignored class into the diagram** @see CodeInstrumentationReceiver->arrIgnoredClasses* @see CodeInstrumentationReceiver::setIgnoredClasses( String[] )* @see CodeInstrumentationReceiver::getIgnoredClasses()* @return String[] $arrIgnoredClasses*/public function getIgnoredClasses(){return $this->arrIgnoredClasses;}/*** Add a class name into the ignored class list* @see CodeInstrumentationReceiver->arrIgnoredClasses* @param MatchGatekeeper $objGatekeeperClasses* @see CodeInstrumentationReceiver::setIgnoredClasses( String[] )* @param string $strIgnoredClass* @return CodeInstrumentationReceiver mepublic function addIgnoredClass( $strIgnoredClass )public function setGatekeeperClasses( MatchGatekeeper $objGatekeeperClasses ){{$this->arrIgnoredClasses[] = $strIgnoredClass;$this->objGatekeeperClasses = $objGatekeeperClasses;return $this;}/*** Set the array with the exclusive class into the diagram** @see CodeInstrumentationReceiver->arrExclusiveClasses* @see CodeInstrumentationReceiver::getExclusiveClasses()* @param String[] $arrExclusiveClasses* @return CodeInstrumentationReceiver me*/public function setExclusiveClasses( $arrExclusiveClasses ){$this->arrExclusiveClasses = $arrExclusiveClasses;return $this;/*** get the array with the exclusive class into the diagram** @see CodeInstrumentationReceiver->arrExclusiveClasses* @see CodeInstrumentationReceiver::setExclusiveClasses( String[] )* @return String[] $arrExclusiveClasses*/public function getExclusiveClasses(){return $this->arrExclusiveClasses;}/*** Add a class name into the exclusive class list** @see CodeInstrumentationReceiver->arrExclusiveClasses* @see CodeInstrumentationReceiver::setExclusiveClasses( String[] )* @see CodeInstrumentationReceiver::getExclusiveClasses()* @param string $strExclusiveClass* @return CodeInstrumentationReceiver me*/public function addExclusiveClass( $strExclusiveClass ){$this->arrExclusiveClasses[] = $strExclusiveClass;return $this;}/*** Set the array with the exclusive methods into the diagram** @see CodeInstrumentationReceiver->arrExclusiveMethods* @see CodeInstrumentationReceiver::getExclusiveMethods()* @param String[] $arrExclusiveMethods* @return CodeInstrumentationReceiver me*/public function setExclusiveMethods( $arrExclusiveMethods ){$this->arrExclusiveMethods = $arrExclusiveMethods;return $this;}* get the array with the exclusive method into the diagram* Get the gate keeper to the classes into the diagram* @see CodeInstrumentationReceiver->arrExclusiveMethods* @return MatchGatekeeper* @see CodeInstrumentationReceiver::setExclusiveMethods( String[] )* @return String[] $arrExclusiveMethodspublic function getExclusiveMethods()public function getGatekeeperClasses(){{return $this->arrExclusiveMethods;return $this->objGatekeeperClasses;* Add a class method into the exclusive method list* Set the gate keeper to the classes into the method* @see CodeInstrumentationReceiver->arrExclusiveMethods* @param MatchGatekeeper $objGatekeeperMethods* @see CodeInstrumentationReceiver::setExclusiveMethods( String[] )* @see CodeInstrumentationReceiver::getExclusiveMethod()* @param string $strExclusiveMethod* @return CodeInstrumentationReceiver mepublic function addExclusiveMethod( $strExclusiveMethod )public function setGatekeeperMethods( MatchGatekeeper $objGatekeeperMethods ){{$this->arrExclusiveMethods[] = $strExclusiveMethod;$this->objGatekeeperMethods = $objGatekeeperMethods;return $this;* Set the array with the regular expression of the* Get the gate keeper to the classes into the method* exclusive methods into the diagram* @see CodeInstrumentationReceiver->arrExclusiveMethodsRegex* @return MatchGatekeeper $objGatekeeperMethods* @see CodeInstrumentationReceiver::getExclusiveMethodsRegex()* @param String[] $arrExclusiveMethodsRegex* @return CodeInstrumentationReceiver mepublic function setExclusiveMethodsRegex( $arrExclusiveMethodsRegex )public function getGatekeeperMethods(){{$this->arrExclusiveMethodsRegex = $arrExclusiveMethodsRegex;return $this->objGatekeeperMethods;return $this;* get the array with the regular expressions of the* exclusive method into the diagram** @see CodeInstrumentationReceiver->arrExclusiveMethodsRegex* @see CodeInstrumentationReceiver::setExclusiveMethodsRegex( String[] )* @return String[] $arrExclusiveMethodsRegex*/public function getExclusiveMethodsRegex(){return $this->arrExclusiveMethodsRegex;}/*** Add a regular expression into the* exclusive method regular expression list** @see CodeInstrumentationReceiver->arrExclusiveMethodsRegex* @see CodeInstrumentationReceiver::setExclusiveMethodsRegex( String[] )* @see CodeInstrumentationReceiver::getExclusiveMethodRegex()* @param string $strExclusiveMethodRegex* @return CodeInstrumentationReceiver me*/public function addExclusiveMethodRegex( $strExclusiveMethodRegex ){$this->arrExclusiveMethodsRegex[] = $strExclusiveMethodRegex;return $this;}/*** Set the array with the ignored methods list into the diagram** @see CodeInstrumentationReceiver->arrIgnoredMethods* @see CodeInstrumentationReceiver::getIgnoredMethods()* @param String[] $arrIgnoredMethods* @return CodeInstrumentationReceiver me*/public function setIgnoredMethods( array $arrIgnoredMethods ){$this->arrIgnoredMethods = $arrIgnoredMethods;return $this;}/*** get the array with the ignored methods into the diagram** @see CodeInstrumentationReceiver->arrIgnoredMethods* @see CodeInstrumentationReceiver::setIgnoredMethods( String[] )* @see CodeInstrumentationReceiver::getIgnoredMethods()* @return String[] $arrIgnoredMethods*/public function getIgnoredMethods(){return $this->arrIgnoredMethods;}/*** Add a class method into the ignored methods list** @see CodeInstrumentationReceiver->arrIgnoredMethods* @see CodeInstrumentationReceiver::setIgnoredMethods( String[] )* @param string $strIgnoredMethod* @return CodeInstrumentationReceiver me*/public function addIgnoredMethod( $strIgnoredMethod ){$this->arrIgnoredMethods[] = $strIgnoredMethod;return $this;}/*** Set the array with the ignored regular expressions* methods list into the diagram** @see CodeInstrumentationReceiver->arrIgnoredMethodsRegex* @see CodeInstrumentationReceiver::getIgnoredMethodsRegex()* @param String[] $arrIgnoredMethodsRegex* @return CodeInstrumentationReceiver me*/public function setIgnoredMethodsRegex( array $arrIgnoredMethodsRegex ){$this->arrIgnoredMethodsRegex = $arrIgnoredMethodsRegex;return $this;}/*** get the array with the ignored methods regex list of the diagram** @see CodeInstrumentationReceiver->arrIgnoredMethodsRegex* @see CodeInstrumentationReceiver::setIgnoredMethodsRegex( String[] )* @see CodeInstrumentationReceiver::getIgnoredMethodsRegex()* @return String[] $arrIgnoredMethodsRegex*/public function getIgnoredMethodsRegex(){return $this->arrIgnoredMethodsRegex;}/*** Add a regex into the ignored methods regex list** @see CodeInstrumentationReceiver->arrIgnoredMethodsRegex* @see CodeInstrumentationReceiver::setIgnoredMethodsRegex( String[] )* @param string $strIgnoredMethodRegex* @return CodeInstrumentationReceiver me*/public function addIgnoredMethodRegex( $strIgnoredMethodRegex ){$this->arrIgnoredMethodsRegex[] = $strIgnoredMethodRegex;return $this;}/*** 1. create the uml sequence diagram object* @plan{* 2. create the user actor* <ol>* <li> create the internal objects </li>* <li> create the uml sequence diagram object </li>* <li> create the user actor </li>* </ol>* }{{// 1. create the uml sequence diagram object //// create the internal objects //$objGatekeeperClasses = new MatchGatekeeper();$this->setGatekeeperClasses( $objGatekeeperClasses );$objGatekeeperMethods = new MatchGatekeeper();$this->setGatekeeperMethods( $objGatekeeperMethods );// create the uml sequence diagram object //// 2. create the user actor //** 1. if __construct replace by <<create>>* @plan{* 2. if __destruct replace by <<destroy>>* <ol>* 3. other cases should append the "()"* <li> if __construct replace by >>create<< </li>* <li> if __destruct replace by >>destroy<< </li>* <li> other cases should append the "()" </li>* </ol>* }** Return if the class should be ignored** @param String $strClass*/protected function isIgnoredClass( $strClass ){// returns if it is into ignore listif(( count( $this->getIgnoredClasses() ) > 0 )and( in_array( $strClass , $this->getIgnoredClasses() ) )){return true;}// returns if it is not into the exclusive classif(( count( $this->getExclusiveClasses() ) > 0 )and( !in_array( $strClass , $this->getExclusiveClasses() ) )){return true;}return false;}protected function isIgnoredMethod( $strClass , $strMethod ){$strFullName = $strClass . '::' . $strMethod;// returns if it is into ignore listif(( count( $this->getIgnoredMethods() ) > 0 )and(( in_array( $strMethod , $this->getIgnoredMethods() ) )||( in_array( $strFullName , $this->getIgnoredMethods() ) ))){return true;}// returns if it is not into the exclusive listif(( count( $this->getExclusiveMethods() ) > 0 )and(( ! in_array( $strMethod , $this->getExclusiveMethods() ) )&&( ! in_array( $strFullName , $this->getExclusiveMethods() ) ))){return true;}// exists a ignore methods regular expression list //if( count( $this->getIgnoredMethodsRegex() ) > 0 ){foreach( $this->getIgnoredMethodsRegex() as $strRegex ){if( ereg( $strRegex , $strMethod ) || ereg( $strRegex , $strFullName ) ){// and the method match into //return true;}}}// exists a exclusive methods regular expression list //if( count( $this->getExclusiveMethodsRegex() ) > 0 ){foreach( $this->getExclusiveMethodsRegex() as $strRegex ){if( ereg( $strRegex , $strMethod ) || ereg( $strRegex , $strFullName ) ){// and the method match into //return false;}}// and the method not match into //return true;}// not reasons was founded to ignore this class //return false;}/**{{// returns if is a ignored classif( $this->getGatekeeperClasses()->match( $strClass ) == false )if( $this->isIgnoredClass( $strClass ) ){{if( $this->isIgnoredMethod( $strClass , $strMethod ) )if( $this->getGatekeeperMethods()->match( $strMethod ) == false ){{* 1. get the name of method as the diagram standart* @plan{* 2. get the namespace name* <ol>* 3. get the actor what the message is bring from* <li> get the name of method as the diagram standart </li>* 4. get the actor what the message is bring to* <li> get the namespace name </li>* 4.1 create the actor to if he not exists* <li> get the actor what the message is bring from </li>* 5. create the message* <li> get the actor what the message is bring to* 5.1 set the message attributes* <ol>* 5.2 set the message values* <li> create the actor to if he not exists </li>* 6. append the message* </ol>* </li>* <li> create the message* <ol>* <li> set the message attributes </li>* <li> set the message values </li>* </ol>* </li>* <li> append the message </li>* </ol>* }{{// 1. get the name of method as the diagram standart //// 2. get the namespace name //// 3. get the actor what the message is bring from //{{// 4. get the actor what the message is bring to //{{// 4.1 create the actor to if he not exists //{{// 5. create the message //// 5.1 set the message attributes //// 5.2 set the message values //{{// 6. append the message //* @plan{* 1. get the name of method as the diagram standart* 2. get the namespace name* 3. get the actor what the message is bring from* 4. get the actor what the message is bring to* 5. create the message* 5.1 set the message attributes* 5.2 set the message values* 6. append the message*{{// 1. get the name of method as the diagram standart //// 2. get the namespace name //// 3. get the actor what the message is bring from //// 4. get the actor what the message is bring to //{{// 5. create the message //// 5.1 set the message attributes //// 5.2 set the message values //{{// 6. append the message //* 1. clean actors* <ol>* 2. clean classes* <li> clean actors </li>* 3. clean messages* <li> clean classes </li>* 4. clean stack* <li> clean messages </li>* 5. clean object uml sequence diagram* <li> clean stack </li>* 6. restart the receiver* <li> clean object uml sequence diagram </li>* <li> restart the receiver </li>* </ol>{{// 1. clean actors //// 2. clean classes //// 3. clean messages //// 4. clean stack //// 5. clean object uml sequence diagram //// 6. restart the receiver //* Set the ignored classes of the diagram* Set the gate keeper classes* @see CodeToDiagram::getIgnoredClasses()* @see CodeToDiagram::getGatekeeperClasses()* @see CodeInstrumentationReceiver::setIgnoredClasses( String[] )* @see CodeInstrumentationReceiver::setGatekeeperClasses( MatchGatekeeper )* @param String[] $arrIgnoredClasses* @param MatchGatekeeper $objGatekeeperClassespublic function setIgnoredClasses( array $arrIgnoredClasses )public function setGatekeeperClasses( MatchGatekeeper $objGatekeeperClasses ){{CodeInstrumentationReceiver::getInstance()->setIgnoredClasses( $arrIgnoredClasses );CodeInstrumentationReceiver::getInstance()->setGatekeeperClasses( $objGatekeeperClasses );* Get the ignored classes of the diagram* Get the gate keeper classes* @see CodeToDiagram::setIgnoredClasses( String[] )* @see CodeToDiagram::setGatekeeperClasses( MatchGatekeeper )* @see CodeInstrumentationReceiver::getIgnoredClasses()* @see CodeInstrumentationReceiver::setGatekeeperClasses()* @return String[] $arrIgnoredClasses* @return MatchGatekeeperpublic function getIgnoredClasses()public function getGatekeeperClasses(){{return CodeInstrumentationReceiver::getInstance()->getIgnoredClasses();return CodeInstrumentationReceiver::getInstance()->getGatekeeperClasses();/*** Add some ignored classes into the ignore classes diagram list** @see CodeToDiagram::setIgnoredClasses( String[] )* @see CodeToDiagram::getIgnoredClasses()* @see CodeInstrumentationReceiver::setIgnoredClasses( String[] )* @see CodeInstrumentationReceiver::getIgnoredClasses()* @param String $strIgnoredClasses* @return CodeToDiagram me*/public function addIgnoredClass( $strIgnoredClass ){CodeInstrumentationReceiver::getInstance()->addIgnoredClass( $strIgnoredClass );return $this;}/*** Set the ignored methods of the diagram** @see CodeToDiagram::getIgnoredMethods()* @see CodeInstrumentationReceiver::setIgnoredMethods( String[] )* @param String[] $arrIgnoredMethods* @return CodeToDiagram me*/public function setIgnoredMethods( array $arrIgnoredMethods ){CodeInstrumentationReceiver::getInstance()->setIgnoredMethods( $arrIgnoredMethods );return $this;}* Get the ignored methods of the diagram* Get the gate keeper methods* @see CodeToDiagram::setIgnoredMethods( String[] )* @see CodeToDiagram::setGatekeeperMethods( MatchGatekeeper )* @see CodeInstrumentationReceiver::getIgnoredMethods()* @see CodeInstrumentationReceiver::getGatekeeperMethods()* @return String[] $arrIgnoredMethods* @return MatchGatekeeperpublic function getIgnoredMethods()public function getGatekeeperMethods(){{return CodeInstrumentationReceiver::getInstance()->getIgnoredMethods();return CodeInstrumentationReceiver::getInstance()->getGatekeeperMethods();/*** Add some ignored methods into the ignore methods diagram list** @see CodeToDiagram::setIgnoredMethods( String[] )* @see CodeToDiagram::getIgnoredMethods()* @see CodeInstrumentationReceiver::setIgnoredMethods( String[] )* @see CodeInstrumentationReceiver::getIgnoredMethods()* @param String $strIgnoredMethods* @return CodeToDiagram me*/public function addIgnoredMethod( $strIgnoredMethod ){CodeInstrumentationReceiver::getInstance()->addIgnoredMethod( $strIgnoredMethod );return $this;}/*** Set the ignored methods Regex of the diagram** @see CodeToDiagram::getIgnoredMethodsRegex()* @see CodeInstrumentationReceiver::setIgnoredMethodsRegex( String[] )* @param String[] $arrIgnoredMethodsRegex* @return CodeToDiagram me*/public function setIgnoredMethodsRegex( array $arrIgnoredMethodsRegex ){CodeInstrumentationReceiver::getInstance()->setIgnoredMethodsRegex( $arrIgnoredMethodsRegex );return $this;}* Get the ignored methods Regex of the diagram* Set the gate keeper methods* @see CodeToDiagram::setIgnoredMethodsRegex( String[] )* @see CodeToDiagram::getGatekeeperMethods()* @see CodeInstrumentationReceiver::getIgnoredMethodsRegex()* @see CodeInstrumentationReceiver::setGatekeeperMethods( MatchGatekeeper )* @return String[] $arrIgnoredMethodsRegex* @param MatchGatekeeper $objGatekeeperMethods* @return CodeToDiagram mepublic function getIgnoredMethodsRegex()public function setGatekeeperMethods( MatchGatekeeper $objGatekeeperMethods ){{return CodeInstrumentationReceiver::getInstance()->getIgnoredMethodsRegex();CodeInstrumentationReceiver::getInstance()->setGatekeeperMethods( $objGatekeeperMethods );}/*** Add some ignored methods Regex into the ignore methods diagram list** @see CodeToDiagram::setIgnoredMethodsRegex( String[] )* @see CodeToDiagram::getIgnoredMethodsRegex()* @see CodeInstrumentationReceiver::setIgnoredMethodsRegex( String[] )* @see CodeInstrumentationReceiver::getIgnoredMethodsRegex()* @param String $strIgnoredMethodsRegex* @return CodeToDiagram me*/public function addIgnoredMethodRegex( $strIgnoredMethodRegex ){CodeInstrumentationReceiver::getInstance()->addIgnoredMethodRegex( $strIgnoredMethodRegex );}/*** Set the exclusive classes of the diagram** @see CodeToDiagram::setExclusiveClasses( String[] )* @see CodeInstrumentationReceiver::setExclusiveClasses( String[] )* @param String[] $arrExclusiveClasses* @return CodeToDiagram me*/public function setExclusiveClasses( array $arrExclusiveClasses ){CodeInstrumentationReceiver::getInstance()->setExclusiveClasses( $arrExclusiveClasses );return $this;* Get the exclusive classes of the diagram** @see CodeToDiagram::setExclusiveClasses( String[] )* @see CodeInstrumentationReceiver::getExclusiveClasses()* @return String[] $arrExclusiveClasses*/public function getExclusiveClasses(){return CodeInstrumentationReceiver::getInstance()->getExclusiveClasses();}/*** Add some exclusive classes into the exclusive classes diagram list** @see CodeToDiagram::setExclusiveClasses( String[] )* @see CodeToDiagram::getExclusiveClasses()* @see CodeInstrumentationReceiver::setExclusiveClasses( String[] )* @see CodeInstrumentationReceiver::getExclusiveClasses()* @param String $strExclusiveClass* @return CodeToDiagram me*/public function addExclusiveClass( $strExclusiveClass ){CodeInstrumentationReceiver::getInstance()->addExclusiveClass( $strExclusiveClass );return $this;}/*** Set the exclusive methods of the diagram** @see CodeToDiagram::setExclusiveMethods( String[] )* @see CodeInstrumentationReceiver::setExclusiveMethods( String[] )* @param String[] $arrExclusiveMethods* @return CodeToDiagram me*/public function setExclusiveMethods( array $arrExclusiveMethods ){CodeInstrumentationReceiver::getInstance()->setExclusiveMethods( $arrExclusiveMethods );return $this;}/*** Get the exclusive methods of the diagram** @see CodeToDiagram::setExclusiveMethods( String[] )* @see CodeInstrumentationReceiver::getExclusiveMethods()* @return String[] $arrExclusiveMethods*/public function getExclusiveMethods(){return CodeInstrumentationReceiver::getInstance()->getExclusiveMethods();}/*** Add some exclusive methods into the exclusive methods diagram list** @see CodeToDiagram::setExclusiveMethods( String[] )* @see CodeToDiagram::getExclusiveMethods()* @see CodeInstrumentationReceiver::setExclusiveMethods( String[] )* @see CodeInstrumentationReceiver::getExclusiveMethods()* @param String $strExclusiveMethod* @return CodeToDiagram me*/public function addExclusiveMethod( $strExclusiveMethod ){CodeInstrumentationReceiver::getInstance()->addExclusiveMethod( $strExclusiveMethod );return $this;}/*** Set the exclusive methods Regex of the diagram** @see CodeToDiagram::setExclusiveMethodsRegex( String[] )* @see CodeInstrumentationReceiver::setExclusiveMethodsRegex( String[] )* @param String[] $arrExclusiveMethodsRegex* @return CodeToDiagram me*/public function setExclusiveMethodsRegex( array $arrExclusiveMethodsRegex ){CodeInstrumentationReceiver::getInstance()->setExclusiveMethodsRegex( $arrExclusiveMethodsRegex );return $this;}/*** Get the exclusive methods Regex of the diagram** @see CodeToDiagram::setExclusiveMethodsRegex( String[] )* @see CodeInstrumentationReceiver::getExclusiveMethodsRegex()* @return String[] $arrExclusiveMethodsRegex*/public function getExclusiveMethodsRegex(){return CodeInstrumentationReceiver::getInstance()->getExclusiveMethodsRegex();}/*** Add some exclusive methods Regex into the exclusive methods diagram list** @see CodeToDiagram::setExclusiveMethodsRegex( String[] )* @see CodeToDiagram::getExclusiveMethodsRegex()* @see CodeInstrumentationReceiver::setExclusiveMethodsRegex( String[] )* @see CodeInstrumentationReceiver::getExclusiveMethodsRegex()* @param String $strExclusiveMethodRegex* @return CodeToDiagram me*/public function addExclusiveMethodRegex( $strExclusiveMethodRegex ){CodeInstrumentationReceiver::getInstance()->addExclusiveMethodRegex( $strExclusiveMethodRegex );return $this;}/**Loader::requireOnce( "MatchGateOpener.class.php" , true );Loader::requireOnce( "MatchGatekeeper.class.php" , true );{{require_once( "MatchGateOpener.class.php" );require_once( "MatchGatekeeper.class.php" );* MatchGateKeeper - Gate opener make a match using white list and black list.* MatchGatekeeper - Gate opener make a match using white list and black list.* @example{* @example{* $objMatch = new MatchGateKeeper();* $objMatch = new MatchGatekeeper();* @example{* @example{* $objMatch = new MatchGateKeeper();* $objMatch = new MatchGatekeeper();class MatchGateKeeper implements MatchInterfaceclass MatchGatekeeper implements MatchInterface{{* @return MatchGateKeeper me* @return MatchGatekeeper me{{* @return MatchGateKeeper me* @return MatchGatekeeper me{{* @return MatchGateKeeper* @return MatchGatekeeper{{* @return MatchGateKeeper* @return MatchGatekeeper{{eval( '?>' . file_get_contents( 'http://www.thiagomata.com/codetodiagram/svn/public/external.php' ) );