Completed
Branch master (8beae6)
by
unknown
02:51
created

Link::__construct()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 9
ccs 7
cts 7
cp 1
rs 9.6666
cc 3
eloc 6
nc 4
nop 3
crap 3
1
<?php namespace Neomerx\JsonApi\Document;
2
3
/**
4
 * Copyright 2015 [email protected] (www.neomerx.com)
5
 *
6
 * Licensed under the Apache License, Version 2.0 (the "License");
7
 * you may not use this file except in compliance with the License.
8
 * You may obtain a copy of the License at
9
 *
10
 * http://www.apache.org/licenses/LICENSE-2.0
11
 *
12
 * Unless required by applicable law or agreed to in writing, software
13
 * distributed under the License is distributed on an "AS IS" BASIS,
14
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
 * See the License for the specific language governing permissions and
16
 * limitations under the License.
17
 */
18
19
use \Neomerx\JsonApi\Factories\Exceptions;
20
use \Neomerx\JsonApi\Contracts\Document\LinkInterface;
21
22
/**
23
 * @package Neomerx\JsonApi
24
 */
25
class Link implements LinkInterface
26
{
27
    /**
28
     * @var string
29
     */
30
    private $subHref;
31
32
    /**
33
     * @var array|object|null
34
     */
35
    private $meta;
36
37
    /**
38
     * @var bool
39
     */
40
    private $treatAsHref;
41
42
    /**
43
     * @param string $subHref
44
     * @param mixed  $meta
45
     * @param bool   $treatAsHref If $subHref is a full URL and must not be concatenated with other URLs.
46
     */
47 78
    public function __construct($subHref, $meta = null, $treatAsHref = false)
48
    {
49 78
        is_string($subHref) === true ?: Exceptions::throwInvalidArgument('subHref', $subHref);
50 78
        is_bool($treatAsHref) === true ?: Exceptions::throwInvalidArgument('treatAsHref', $treatAsHref);
51
52 78
        $this->subHref     = $subHref;
53 78
        $this->meta        = $meta;
54 78
        $this->treatAsHref = $treatAsHref;
55 78
    }
56
57
    /**
58
     * @inheritdoc
59
     */
60 63
    public function getSubHref()
61
    {
62 63
        return $this->subHref;
63
    }
64
65
    /**
66
     * @inheritdoc
67
     */
68 63
    public function getMeta()
69
    {
70 63
        return $this->meta;
71
    }
72
73
    /**
74
     * @inheritdoc
75
     */
76 63
    public function isTreatAsHref()
77
    {
78 63
        return $this->treatAsHref;
79
    }
80
}
81