00001 <?php 00002 /*************************************************************************** 00003 * Copyright (C) 2009 by Denis M. Gabaidulin * 00004 * * 00005 * This program is free software; you can redistribute it and/or modify * 00006 * it under the terms of the GNU Lesser General Public License as * 00007 * published by the Free Software Foundation; either version 3 of the * 00008 * License, or (at your option) any later version. * 00009 * * 00010 ***************************************************************************/ 00011 00012 final class ImmutableObjectComparator extends Singleton 00013 implements Comparator, Instantiatable 00014 { 00015 public static function me() 00016 { 00017 return Singleton::getInstance(__CLASS__); 00018 } 00019 00020 public function compare($one, $two) 00021 { 00022 Assert::isInstance($one, 'Identifiable'); 00023 Assert::isInstance($two, 'Identifiable'); 00024 00025 $oneId = $one->getId(); 00026 $twoId = $two->getId(); 00027 00028 if ($oneId === $twoId) 00029 return 0; 00030 00031 return ($oneId < $twoId) ? -1 : 1; 00032 } 00033 } 00034 ?>