00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00018 final class IndexedList extends AbstractList
00019 {
00020 public static function create()
00021 {
00022 return new self;
00023 }
00024
00025 public function offsetSet($offset, $value)
00026 {
00027 Assert::isTrue($value instanceof Identifiable);
00028
00029 $offset = $value->getId();
00030
00031 if ($this->offsetExists($offset))
00032 throw new WrongArgumentException(
00033 "object with id == '{$offset}' already exists"
00034 );
00035
00036 $this->list[$offset] = $value;
00037
00038 return $this;
00039 }
00040 }
00041 ?>