-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLanguageModel.php
101 lines (80 loc) · 2 KB
/
LanguageModel.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
/***********
*
* Source Text Library
* https://developers.urbanmonastic.org/
*
* © Paul Prins
* https://paulprins.net https://paul.build/
*
* Licensed under MIT - For full license, view the LICENSE distributed with this source.
*
***********/
namespace UrbanMonastics\SourceTextLibrary\Models;
class Language{
/* -- Version Members -- */
protected string $Abbreviation; // Required
protected string $Family; // Required
protected string $Title; // Required
protected ?int $StartDate = null;
protected ?int $EndDate = null;
public function __construct( String $Abbreviation, Array $RawLanguage = array(), String $FamilyName ){
if( !is_null( $Abbreviation ) ){
$this->setAbbreviation( $Abbreviation );
}
if( array_key_exists( 0, $RawLanguage ) ){
$this->setTitle( $RawLanguage[0] );
}
if( array_key_exists( 1, $RawLanguage ) && is_array( $RawLanguage[1] ) ){
if( array_key_exists( 0, $RawLanguage[1] ) && is_numeric( $RawLanguage[1][0] ) )
$this->setStartDate( $RawLanguage[1][0] );
if( array_key_exists( 1, $RawLanguage[1] ) && is_numeric( $RawLanguage[1][1] ) )
$this->setEndDate( $RawLanguage[1][1] );
}
if( !is_null( $FamilyName ) ){
$this->setFamily( $FamilyName );
}
return $this;
}
/*
* Getters
*/
function getAbbreviation(){
return $this->Abbreviation;
}
function getFamily(){
return $this->Family;
}
function getTitle(){
return $this->Title;
}
function getStartDate(){
return $this->StartDate;
}
function getEndDate(){
return $this->EndDate;
}
/*
* Setters
*/
function setAbbreviation( string $Abbreviation ){
$this->Abbreviation = $Abbreviation;
return $this;
}
function setFamily( string $Family ){
$this->Family = $Family;
return $this;
}
function setTitle( string $Title ){
$this->Title = $Title;
return $this;
}
function setStartDate( int $StartDate ){
$this->StartDate = $StartDate;
return $this;
}
function setEndDate( int $EndDate ){
$this->EndDate = $EndDate;
return $this;
}
}