AbstractDataObject::getId()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 1 Features 0
Metric Value
c 3
b 1
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
/**
4
 * This file is part of the PHP SDK library for the Superdesk Content API.
5
 *
6
 * Copyright 2015 Sourcefabric z.u. and contributors.
7
 *
8
 * For the full copyright and license information, please see the
9
 * AUTHORS and LICENSE files distributed with this source code.
10
 *
11
 * @copyright 2015 Sourcefabric z.ú.
12
 * @license http://www.superdesk.org/license
13
 */
14
15
namespace Superdesk\ContentApiSdk\Data;
16
17
use stdClass;
18
use Superdesk\ContentApiSdk\ContentApiSdk;
19
20
/**
21
 * Abstract for simple Item and Package objects.
22
 */
23
abstract class AbstractDataObject extends stdClass
24
{
25
    /**
26
     * Construct method for class. Converts data (string via json_decode or
27
     * array/object) to properties.
28
     *
29
     * @param mixed $data
30
     */
31
    public function __construct($data = null)
32
    {
33
        $objectData = array();
34
35
        if (is_string($data)) {
36
            $objectData = json_decode($data);
37
        } elseif (is_array($data) || is_object($data)) {
38
            $objectData = $data;
39
        }
40
41
        foreach ($objectData as $key => $value) {
42
            $this->$key = $value;
43
        }
44
    }
45
46
    /**
47
     * Get property from object.
48
     *
49
     * @param string $property Property name
50
     *
51
     * @return mixed Property value
52
     */
53
    public function __get($property)
54
    {
55
        if (property_exists($this, $property)) {
56
            return $this->$property;
57
        }
58
    }
59
60
    /**
61
     * Set property on object
62
     *
63
     * @param string $name  Property name
64
     * @param mixed $value Property value
65
     */
66
    public function __set($name, $value)
67
    {
68
        $this->$name = $value;
69
    }
70
71
    /**
72
     * Returns id extracted from uri. Uses getIdFromUri method in ContentApiSdk
73
     * class.
74
     *
75
     * @return string Urldecoded id
76
     */
77
    public function getId()
78
    {
79
        return ContentApiSdk::getIdFromUri($this->uri);
80
    }
81
}
82