Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: /** Chris@0: * A caching factory for token stream objects. Chris@0: * Chris@0: * @author Sebastian Bergmann Chris@0: * @copyright Sebastian Bergmann Chris@0: * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License Chris@0: * @link http://github.com/sebastianbergmann/php-token-stream/tree Chris@0: * @since Class available since Release 1.0.0 Chris@0: */ Chris@0: class PHP_Token_Stream_CachingFactory Chris@0: { Chris@0: /** Chris@0: * @var array Chris@0: */ Chris@0: protected static $cache = array(); Chris@0: Chris@0: /** Chris@0: * @param string $filename Chris@0: * @return PHP_Token_Stream Chris@0: */ Chris@0: public static function get($filename) Chris@0: { Chris@0: if (!isset(self::$cache[$filename])) { Chris@0: self::$cache[$filename] = new PHP_Token_Stream($filename); Chris@0: } Chris@0: Chris@0: return self::$cache[$filename]; Chris@0: } Chris@0: Chris@0: /** Chris@0: * @param string $filename Chris@0: */ Chris@0: public static function clear($filename = null) Chris@0: { Chris@0: if (is_string($filename)) { Chris@0: unset(self::$cache[$filename]); Chris@0: } else { Chris@0: self::$cache = array(); Chris@0: } Chris@0: } Chris@0: }