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); | ||
|  | } |