private function insertAce($property, $index, $mask, SecurityIdentityInterface $sid, $granting, $strategy = null)
    {
        if ($index < 0 || $index > count($this->$property)) {
            throw new \OutOfBoundsException(sprintf('The index must be in the interval [0, %d].', count($this->$property)));
        }

        if (!is_int($mask)) {
            throw new \InvalidArgumentException('$mask must be an integer.');
        }

        if (null === $strategy) {
            if (true === $granting) {
                $strategy = PermissionGrantingStrategy::ALL;
            } else {
                $strategy = PermissionGrantingStrategy::ANY;
            }
        }

        $aces = &$this->$property;
        $oldValue = $this->$property;
        if (isset($aces[$index])) {
            $this->$property = array_merge(
                array_slice($this->$property, 0, $index),
                array(true),
                array_slice($this->$property, $index)
            );

            for ($i = $index, $c = count($this->$property) - 1; $i < $c; ++$i) {
                $this->onEntryPropertyChanged($aces[$i + 1], 'aceOrder', $i, $i + 1);
            }
        }

        $aces[$index] = new Entry(null, $this, $sid, $strategy, $mask, $granting, false, false);
        $this->onPropertyChanged($property, $oldValue, $this->$property);
    }
private function insertAce($property, $index, $mask, SecurityIdentityInterface $sid, $granting, $strategy = null)
    {
        if ($index < 0 || $index > count($this->$property)) {
            throw new \OutOfBoundsException(sprintf('The index must be in the interval [0, %d].', count($this->$property)));
        }

        if (!is_int($mask)) {
            throw new \InvalidArgumentException('$mask must be an integer.');
        }

        if (null === $strategy) {
            if (true === $granting) {
                $strategy = PermissionGrantingStrategy::ALL;
            } else {
                $strategy = PermissionGrantingStrategy::ANY;
            }
        }

        $aces = &$this->$property;
        $oldValue = $this->$property;
        if (isset($aces[$index])) {
            $this->$property = array_merge(
                array_slice($this->$property, 0, $index),
                array(true),
                array_slice($this->$property, $index)
            );

            for ($i = $index, $c = count($this->$property) - 1; $i < $c; ++$i) {
                $this->onEntryPropertyChanged($aces[$i + 1], 'aceOrder', $i, $i + 1);
            }
        }

        $aces[$index] = new Entry(null, $this, $sid, $strategy, $mask, $granting, false, false);
        $this->onPropertyChanged($property, $oldValue, $this->$property);
    }
private function insertAce ( $ property , $ index , $ mask , SecurityIdentityInterface $ sid , $ granting , $ strategy = null ) { if ( $ index < 0 || $ index > count ( $ this -> $ property ) ) { throw new \ OutOfBoundsException ( sprintf ( 'The index must be in the interval [0, %d].' , count ( $ this -> $ property ) ) ) ; } if ( ! is_int ( $ mask ) ) { throw new \ InvalidArgumentException ( '$mask must be an integer.' ) ; } if ( null === $ strategy ) { if ( true === $ granting ) { $ strategy = PermissionGrantingStrategy :: ALL ; } else { $ strategy = PermissionGrantingStrategy :: ANY ; } } $ aces = & $ this -> $ property ; $ oldValue = $ this -> $ property ; if ( isset ( $ aces [ $ index ] ) ) { $ this -> $ property = array_merge ( array_slice ( $ this -> $ property , 0 , $ index ) , array ( true ) , array_slice ( $ this -> $ property , $ index ) ) ; for ( $ i = $ index , $ c = count ( $ this -> $ property ) - 1 ; $ i < $ c ; ++ $ i ) { $ this -> onEntryPropertyChanged ( $ aces [ $ i + 1 ] , 'aceOrder' , $ i , $ i + 1 ) ; } } $ aces [ $ index ] = new Entry ( null , $ this , $ sid , $ strategy , $ mask , $ granting , false , false ) ; $ this -> onPropertyChanged ( $ property , $ oldValue , $ this -> $ property ) ; }
Inserts an ACE.

@param string                    $property
@param int                       $index
@param int                       $mask
@param SecurityIdentityInterface $sid
@param bool                      $granting
@param string                    $strategy

@throws \OutOfBoundsException
@throws \InvalidArgumentException
Inserts an ACE .