Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
MinLength
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
2 / 2
3
100.00% covered (success)
100.00%
1 / 1
 condition
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
2
 typeName
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3/**
4 * @license MIT
5 * @author hazuki3417<hazuki3417@gmail.com>
6 * @copyright 2022 hazuki3417 all rights reserved.
7 */
8
9namespace Selen\Data\Memo\Str;
10
11use Selen\Data\AbstractMemo;
12
13/**
14 * 文字列長が最小となる文字列を保持するクラス
15 */
16class MinLength extends AbstractMemo
17{
18    /**
19     * 値を保持する条件を満たしているか判定します
20     *
21     * @param string $object
22     *
23     * @return bool 条件に一致している場合はtrueを、それ以外の場合はfalseを返します
24     */
25    protected function condition($object): bool
26    {
27        if ($this->object === null) {
28            $this->object = $object;
29            return true;
30        }
31
32        /** @var string $org */
33        $org = $this->object;
34        // TODO: オプションを受け取って細かい挙動を設定できるようにする
35        //       オプションはコンストラクタで受け取る想定
36        return \mb_strlen($object) < \mb_strlen($org);
37    }
38
39    /**
40     * 保持する値のデータ型を指定します
41     *
42     * @return string データ型の名称を返します
43     */
44    protected function typeName(): string
45    {
46        return 'string';
47    }
48}