openstackid-resources/app/Models/Foundation/Summit/EntityEvents/EntityEventList.php

126 lines
3.0 KiB
PHP

<?php namespace Models\foundation\summit\EntityEvents;
/**
* Copyright 2016 OpenStack Foundation
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
use ArrayAccess;
/**
* Class EntityEventList
* @package services\model
* helper class
*/
final class EntityEventList implements ArrayAccess {
/**
* @var int
*/
private $idx = 0;
/**
* @var array
*/
protected $container = array();
/**
* @param array $values
*/
public function __construct(array $values = array())
{
$this->container = $values;
}
/**
* @return array
*/
public function values(){
return array_values($this->container);
}
/**
* @return int
*/
public function size(){
return count($this->container);
}
/**
* @return int
*/
public function getIdx(){ return $this->idx; }
/**
* Whether a offset exists
* @link http://php.net/manual/en/arrayaccess.offsetexists.php
* @param mixed $offset <p>
* An offset to check for.
* </p>
* @return boolean true on success or false on failure.
* </p>
* <p>
* The return value will be casted to boolean if non-boolean was returned.
* @since 5.0.0
*/
public function offsetExists($offset)
{
return isset($this->container[$offset]);
}
/**
* Offset to retrieve
* @link http://php.net/manual/en/arrayaccess.offsetget.php
* @param mixed $offset <p>
* The offset to retrieve.
* </p>
* @return mixed Can return all value types.
* @since 5.0.0
*/
public function offsetGet($offset)
{
return isset($this->container[$offset]) ? $this->container[$offset] : null;
}
/**
* Offset to set
* @link http://php.net/manual/en/arrayaccess.offsetset.php
* @param mixed $offset <p>
* The offset to assign the value to.
* </p>
* @param mixed $value <p>
* The value to set.
* </p>
* @return void
* @since 5.0.0
*/
public function offsetSet($offset, $value)
{
if (is_null($offset)) {
++$this->idx;
$this->container[] = $value;
} else {
$this->container[$offset] = $value;
}
}
/**
* Offset to unset
* @link http://php.net/manual/en/arrayaccess.offsetunset.php
* @param mixed $offset <p>
* The offset to unset.
* </p>
* @return void
* @since 5.0.0
*/
public function offsetUnset($offset)
{
unset($this->container[$offset]);
}
}