/**
  * Helper for usort, compares priority values
  * @param NavigationNode $item1
  * @param NavigationNode $item2
  * @param int $sortingMethod
  * @return int;
  */
 public static function comparePriority(NavigationNode $item1, NavigationNode $item2, $sortingMethod = self::SORT_PRIORITY)
 {
     switch ($sortingMethod) {
         case self::SORT_PRIORITY:
             $sortable = array($item1->getPriority(), $item2->getPriority());
             break;
         case self::SORT_PRIORITY_INTEGER:
             $sortable = array((double) $item1->getPriority(), (double) $item2->getPriority());
             break;
         case self::SORT_PRIORITY_STRING:
             $sortable = array(String::lower((string) $item1->getPriority()), String::lower((string) $item2->getPriority()));
             break;
         default:
             throw new InvalidStateException("No match for sorting method");
     }
     if ($sortable[0] == $sortable[1]) {
         return 0;
     }
     $sorted = $sortable;
     sort($sorted);
     return $sorted[0] == $sortable[0] ? -1 : 1;
 }