/**
  * Constructor
  * 
  * @param array $unOrderedTypes
  * @param string $orderMode
  * @throws ilTestQuestionPoolException 
  */
 public function __construct($unOrderedTypes, $orderMode = self::ORDER_MODE_ALPHA)
 {
     self::$flippedQuestionTypeOrder = array_flip(self::$fixQuestionTypeOrder);
     $this->types = $unOrderedTypes;
     switch ($orderMode) {
         case self::ORDER_MODE_FIX:
             uasort($this->types, array($this, 'fixQuestionTypeOrderSortCallback'));
             break;
         case self::ORDER_MODE_ALPHA:
             ksort($this->types);
             break;
         default:
             throw new ilTestQuestionPoolException('invalid order mode given: ' . $orderMode);
     }
 }