Code Duplication    Length = 20-22 lines in 2 locations

src/MetadataV3/edm/IsOKTraits/TFunctionImportParameterAndReturnTypeTrait.php 1 location

@@ 7-26 (lines=20) @@
4
5
use AlgoWeb\ODataMetadata\xsdRestrictions;
6
7
trait TFunctionImportParameterAndReturnTypeTrait
8
{
9
    use EDMSimpleTypeTrait, TQualifiedNameTrait, xsdRestrictions;
10
11
    public function isTFunctionImportParameterAndReturnTypeValid($string)
12
    {
13
        $regex = "Collection\([^ \t]{1,}(\.[^ \t]{1,}){0,}\)";
14
15
        if (!is_string($string)) {
16
            throw new \InvalidArgumentException("Input must be a string");
17
        }
18
        if ($this->isEDMSimpleTypeValid($string)) {
19
            return true;
20
        }
21
        if ($this->isTQualifiedNameValid($string)) {
22
            return true;
23
        }
24
        return $this->matchesRegexPattern($regex, $string);
25
    }
26
}
27

src/MetadataV3/edm/IsOKTraits/TPropertyTypeTrait.php 1 location

@@ 7-28 (lines=22) @@
4
5
use AlgoWeb\ODataMetadata\xsdRestrictions;
6
7
trait TPropertyTypeTrait
8
{
9
    use EDMSimpleTypeTrait, TQualifiedNameTrait, xsdRestrictions;
10
11
    public function isTPropertyTypeValid($string)
12
    {
13
        //The below pattern represents the allowed identifiers in ECMA specification
14
        // plus the '.' for namespace qualification
15
        $regex = "[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}(\.[\p{L}\p{Nl}][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}){0,}";
16
17
        if (!is_string($string)) {
18
            throw new \InvalidArgumentException("Input must be a string");
19
        }
20
        if ($this->isEDMSimpleTypeValid($string)) {
21
            return true;
22
        }
23
        if ($this->isTQualifiedNameValid($string)) {
24
            return true;
25
        }
26
        return $this->matchesRegexPattern($regex, $string);
27
    }
28
}
29