/
www
/
wwwroot
/
alo88.autos
/
wp-content
/
plugins
/
wp-content-crawler
/
app
/
Objects
/
Chunk
/
Enum
/
Upload File
HOME
<?php /** * Created by PhpStorm. * User: turgutsaricam * Date: 10/11/2019 * Time: 09:01 * * @since 1.9.0 */ namespace WPCCrawler\Objects\Chunk\Enum; use Exception; use WPCCrawler\Objects\Chunk\LengthStrategy\AbstractLengthStrategy; use WPCCrawler\Objects\Chunk\LengthStrategy\ByteLengthStrategy; use WPCCrawler\Objects\Chunk\LengthStrategy\CharLengthStrategy; use WPCCrawler\Objects\Chunk\LengthStrategy\UrlEncodedByteLengthStrategy; use WPCCrawler\Objects\Chunk\LengthStrategy\WordLengthStrategy; class ChunkType { const T_BYTES = 1; const T_CHARS = 2; const T_WORDS = 3; const T_URL_ENCODED_BYTES = 4; /** @var array|null */ private static $classMap = null; /** * @param int $chunkType One of the constants defined in this class * @return AbstractLengthStrategy An {@link ItemLength} instance * @throws Exception If $chunkType is not valid * @since 1.9.0 */ public static function getLengthStrategyForType(int $chunkType): AbstractLengthStrategy { if (static::$classMap === null) { static::$classMap = [ static::T_BYTES => ByteLengthStrategy::class, static::T_CHARS => CharLengthStrategy::class, static::T_WORDS => WordLengthStrategy::class, static::T_URL_ENCODED_BYTES => UrlEncodedByteLengthStrategy::class, ]; } // If the given type does not exist, return null. if (!isset(static::$classMap[$chunkType])) { throw new Exception("Chunk type does not exist"); } /** @var AbstractLengthStrategy $clz */ $clz = static::$classMap[$chunkType]; return $clz::getInstance(); } }