/**
  * @param AJXP_Role $roleObject
  */
 public function addRole($roleObject)
 {
     if (isset($this->roles[$roleObject->getId()])) {
         // NOTHING SPECIAL TO DO !
         return;
     }
     if (!isset($this->rights["ajxp.roles"])) {
         $this->rights["ajxp.roles"] = array();
     }
     $this->rights["ajxp.roles"][$roleObject->getId()] = true;
     if (!isset($this->rights["ajxp.roles.order"])) {
         $this->rights["ajxp.roles.order"] = array();
     }
     $this->rights["ajxp.roles.order"][$roleObject->getId()] = count($this->rights["ajxp.roles"]);
     if ($roleObject->alwaysOverrides()) {
         if (!isset($this->rights["ajxp.roles.sticky"])) {
             $this->rights["ajxp.roles.sticky"] = array();
         }
         $this->rights["ajxp.roles.sticky"][$roleObject->getId()] = true;
     }
     uksort($this->rights["ajxp.roles"], array($this, "orderRoles"));
     $this->roles[$roleObject->getId()] = $roleObject;
     $this->recomputeMergedRole();
 }