87 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
<?php
 | 
						|
 | 
						|
/*
 | 
						|
 * This file is part of the Symfony package.
 | 
						|
 *
 | 
						|
 * (c) Fabien Potencier <fabien@symfony.com>
 | 
						|
 *
 | 
						|
 * For the full copyright and license information, please view the LICENSE
 | 
						|
 * file that was distributed with this source code.
 | 
						|
 */
 | 
						|
 | 
						|
namespace Symfony\Component\PropertyAccess;
 | 
						|
 | 
						|
/**
 | 
						|
 * A sequence of property names or array indices.
 | 
						|
 *
 | 
						|
 * @author Bernhard Schussek <bschussek@gmail.com>
 | 
						|
 */
 | 
						|
interface PropertyPathInterface extends \Traversable
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Returns the string representation of the property path.
 | 
						|
     *
 | 
						|
     * @return string The path as string
 | 
						|
     */
 | 
						|
    public function __toString();
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns the length of the property path, i.e. the number of elements.
 | 
						|
     *
 | 
						|
     * @return int The path length
 | 
						|
     */
 | 
						|
    public function getLength();
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns the parent property path.
 | 
						|
     *
 | 
						|
     * The parent property path is the one that contains the same items as
 | 
						|
     * this one except for the last one.
 | 
						|
     *
 | 
						|
     * If this property path only contains one item, null is returned.
 | 
						|
     *
 | 
						|
     * @return self|null The parent path or null
 | 
						|
     */
 | 
						|
    public function getParent();
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns the elements of the property path as array.
 | 
						|
     *
 | 
						|
     * @return array An array of property/index names
 | 
						|
     */
 | 
						|
    public function getElements();
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns the element at the given index in the property path.
 | 
						|
     *
 | 
						|
     * @param int $index The index key
 | 
						|
     *
 | 
						|
     * @return string A property or index name
 | 
						|
     *
 | 
						|
     * @throws Exception\OutOfBoundsException If the offset is invalid
 | 
						|
     */
 | 
						|
    public function getElement($index);
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns whether the element at the given index is a property.
 | 
						|
     *
 | 
						|
     * @param int $index The index in the property path
 | 
						|
     *
 | 
						|
     * @return bool Whether the element at this index is a property
 | 
						|
     *
 | 
						|
     * @throws Exception\OutOfBoundsException If the offset is invalid
 | 
						|
     */
 | 
						|
    public function isProperty($index);
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns whether the element at the given index is an array index.
 | 
						|
     *
 | 
						|
     * @param int $index The index in the property path
 | 
						|
     *
 | 
						|
     * @return bool Whether the element at this index is an array index
 | 
						|
     *
 | 
						|
     * @throws Exception\OutOfBoundsException If the offset is invalid
 | 
						|
     */
 | 
						|
    public function isIndex($index);
 | 
						|
}
 |