Skip to content

Commit dc9751b

Browse files
committed
Merge pull request #2 from loongchan/master
Split up files with more than one class so that each class has their own file.
2 parents a5e4c82 + 8fff8ca commit dc9751b

23 files changed

Lines changed: 169 additions & 151 deletions

src/Activities.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php namespace Locker\XApi;
2+
3+
class Activities extends Collection {
4+
protected $member_type = 'Locker\XApi\Activity';
5+
6+
public function setValue($new_value) {
7+
if (is_object($new_value)) {
8+
$new_value = [$new_value];
9+
}
10+
return parent::setValue($new_value);
11+
}
12+
}

src/Attachment.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php namespace Locker\XApi;
2+
3+
class Attachment extends Element {
4+
protected $props = [
5+
'usageType' => 'Locker\XApi\IRI',
6+
'display' => 'Locker\XApi\LanguageMap',
7+
'description' => 'Locker\XApi\LanguageMap',
8+
'contentType' => 'Locker\XApi\IMT',
9+
'length' => 'Locker\XApi\Integer',
10+
'sha2' => 'Locker\XApi\String',
11+
'fileUrl' => 'Locker\XApi\IRI'
12+
];
13+
protected $required_props = ['usageType', 'display', 'contentType', 'length', 'sha2'];
14+
}

src/Attachments.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php namespace Locker\XApi;
2+
3+
class Attachments extends Collection {
4+
protected $member_type = 'Locker\XApi\Attachment';
5+
}

src/Authority.php

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php namespace Locker\XApi;
2+
3+
use Locker\XApi\Errors\Error as Error;
4+
5+
class Authority extends Actor {
6+
public function validate() {
7+
$errors = parent::validate();
8+
9+
$object_type = $this->getProp('objectType');
10+
$object_type = $object_type !== null && $object_type instanceof Atom ? $object_type->getValue() : null;
11+
if ($object_type === 'Group') {
12+
$members = $this->getProp('members');
13+
$members = $members !== null && $members instanceof Atom ? $members->getValue() : [];
14+
$members_count = count($members);
15+
if ($members_count !== 2) {
16+
$errors[] = new Error("An authority must be an `Agent` or a `Group` with exactly two Agents not `$members_count` members");
17+
} else {
18+
foreach ($members as $index => $member) {
19+
if ($member->objectType !== 'Agent') {
20+
$errors[] = new Error("All members of an authority must be Agents, but member `$index` is a `{$member->objectType}`");
21+
}
22+
}
23+
}
24+
}
25+
26+
return $errors;
27+
}
28+
}

src/Boolean.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php namespace Locker\XApi;
2+
3+
class Boolean extends TypedAtom {
4+
protected static $expected_types = ['boolean'];
5+
}

src/Context.php

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,3 @@ class Context extends Element {
1313
'extensions' => 'Locker\XApi\Extensions'
1414
];
1515
}
16-
17-
class ContextActivities extends Element {
18-
protected $props = [
19-
'parent' => 'Locker\XApi\Activities',
20-
'grouping' => 'Locker\XApi\Activities',
21-
'category' => 'Locker\XApi\Activities',
22-
'other' => 'Locker\XApi\Activities'
23-
];
24-
}
25-
26-
class Activities extends Collection {
27-
protected $member_type = 'Locker\XApi\Activity';
28-
29-
public function setValue($new_value) {
30-
if (is_object($new_value)) {
31-
$new_value = [$new_value];
32-
}
33-
return parent::setValue($new_value);
34-
}
35-
}

src/ContextActivities.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php namespace Locker\XApi;
2+
3+
class ContextActivities extends Element {
4+
protected $props = [
5+
'parent' => 'Locker\XApi\Activities',
6+
'grouping' => 'Locker\XApi\Activities',
7+
'category' => 'Locker\XApi\Activities',
8+
'other' => 'Locker\XApi\Activities'
9+
];
10+
}

src/Duration.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php namespace Locker\XApi;
2+
3+
class Duration extends RegexpAtom {
4+
protected static $pattern = '/^P((\d+([\.,]\d+)?Y)?(\d+([\.,]\d+)?M)?(\d+([\.,]\d+)?W)?(\d+([\.,]\d+)?D)?)?(T(\d+([\.,]\d+)?H)?(\d+([\.,]\d+)?M)?(\d+([\.,]\d+)?S)?)?$/i';
5+
}

src/IMT.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php namespace Locker\XApi;
2+
3+
class IMT extends RegexpAtom {
4+
protected static $pattern = '/^(application|audio|example|image|message|model|multipart|text|video)(\/[-\w\+]+)(;\s*[-\w]+\=[-\w]+)*;?$/';
5+
}

src/Integer.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php namespace Locker\XApi;
2+
3+
class Integer extends TypedAtom {
4+
protected static $expected_types = ['integer'];
5+
}

0 commit comments

Comments
 (0)