@@ 1-110 (lines=110) @@ | ||
1 | var utils = require('../utils'), |
|
2 | Base = require('../Base'); |
|
3 | ||
4 | /** |
|
5 | * Qualifiers are used to supply additional details about a piece of data. |
|
6 | * |
|
7 | * @see {@link https://github.com/FamilySearch/gedcomx/blob/master/specifications/json-format-specification.md#qualifier|GEDCOM X JSON Spec} |
|
8 | * |
|
9 | * @class |
|
10 | * @extends Base |
|
11 | * @param {Object} [json] |
|
12 | */ |
|
13 | var Qualifier = function(json){ |
|
14 | ||
15 | // Protect against forgetting the new keyword when calling the constructor |
|
16 | if(!(this instanceof Qualifier)){ |
|
17 | return new Qualifier(json); |
|
18 | } |
|
19 | ||
20 | // If the given object is already an instance then just return it. DON'T copy it. |
|
21 | if(Qualifier.isInstance(json)){ |
|
22 | return json; |
|
23 | } |
|
24 | ||
25 | this.init(json); |
|
26 | }; |
|
27 | ||
28 | Qualifier.prototype = Object.create(Base.prototype); |
|
29 | ||
30 | Qualifier._gedxClass = Qualifier.prototype._gedxClass = 'GedcomX.Qualifier'; |
|
31 | ||
32 | Qualifier.jsonProps = [ |
|
33 | 'name', |
|
34 | 'value' |
|
35 | ]; |
|
36 | ||
37 | /** |
|
38 | * Check whether the given object is an instance of this class. |
|
39 | * |
|
40 | * @param {Object} obj |
|
41 | * @returns {Boolean} |
|
42 | */ |
|
43 | Qualifier.isInstance = function(obj){ |
|
44 | return utils.isInstance(obj, this._gedxClass); |
|
45 | }; |
|
46 | ||
47 | /** |
|
48 | * Initialize from JSON |
|
49 | * |
|
50 | * @param {Object} |
|
51 | * @return {Qualifier} this |
|
52 | */ |
|
53 | Qualifier.prototype.init = function(json){ |
|
54 | ||
55 | Base.prototype.init.call(this, json); |
|
56 | ||
57 | if(json){ |
|
58 | this.setName(json.name); |
|
59 | this.setValue(json.value); |
|
60 | } |
|
61 | return this; |
|
62 | }; |
|
63 | ||
64 | /** |
|
65 | * Get the name |
|
66 | * |
|
67 | * @returns {String} name |
|
68 | */ |
|
69 | Qualifier.prototype.getName = function(){ |
|
70 | return this.name; |
|
71 | }; |
|
72 | ||
73 | /** |
|
74 | * Set the name |
|
75 | * |
|
76 | * @param {String} name |
|
77 | * @returns {Qualifier} This instance. |
|
78 | */ |
|
79 | Qualifier.prototype.setName = function(name){ |
|
80 | this.name = name; |
|
81 | return this; |
|
82 | }; |
|
83 | ||
84 | /** |
|
85 | * Get the value |
|
86 | * |
|
87 | * @returns {String} |
|
88 | */ |
|
89 | Qualifier.prototype.getValue = function(){ |
|
90 | return this.value; |
|
91 | }; |
|
92 | ||
93 | /** |
|
94 | * Set the value |
|
95 | * |
|
96 | * @param {String} value |
|
97 | * @returns {Qualifier} This instance. |
|
98 | */ |
|
99 | Qualifier.prototype.setValue = function(value){ |
|
100 | this.value = value; |
|
101 | return this; |
|
102 | }; |
|
103 | ||
104 | /** |
|
105 | * Export the object as JSON |
|
106 | * |
|
107 | * @return {Object} JSON object |
|
108 | */ |
|
109 | Qualifier.prototype.toJSON = function(){ |
|
110 | return this._toJSON(Base, Qualifier.jsonProps); |
|
111 | }; |
|
112 | ||
113 | module.exports = Qualifier; |
@@ 1-110 (lines=110) @@ | ||
1 | var utils = require('../utils'), |
|
2 | Base = require('../Base'); |
|
3 | ||
4 | /** |
|
5 | * A text value in a specific language. |
|
6 | * |
|
7 | * @see {@link https://github.com/FamilySearch/gedcomx/blob/master/specifications/json-format-specification.md#text-value|GEDCOM X JSON Spec} |
|
8 | * |
|
9 | * @class |
|
10 | * @extends Base |
|
11 | * @apram {Object} [json] |
|
12 | */ |
|
13 | var TextValue = function(json){ |
|
14 | ||
15 | // Protect against forgetting the new keyword when calling the constructor |
|
16 | if(!(this instanceof TextValue)){ |
|
17 | return new TextValue(json); |
|
18 | } |
|
19 | ||
20 | // If the given object is already an instance then just return it. DON'T copy it. |
|
21 | if(TextValue.isInstance(json)){ |
|
22 | return json; |
|
23 | } |
|
24 | ||
25 | this.init(json); |
|
26 | }; |
|
27 | ||
28 | TextValue.prototype = Object.create(Base.prototype); |
|
29 | ||
30 | TextValue._gedxClass = TextValue.prototype._gedxClass = 'GedcomX.TextValue'; |
|
31 | ||
32 | TextValue.jsonProps = [ |
|
33 | 'lang', |
|
34 | 'value' |
|
35 | ]; |
|
36 | ||
37 | /** |
|
38 | * Check whether the given object is an instance of this class. |
|
39 | * |
|
40 | * @param {Object} obj |
|
41 | * @returns {Boolean} |
|
42 | */ |
|
43 | TextValue.isInstance = function(obj){ |
|
44 | return utils.isInstance(obj, this._gedxClass); |
|
45 | }; |
|
46 | ||
47 | /** |
|
48 | * Initialize from JSON |
|
49 | * |
|
50 | * @param {Object} |
|
51 | * @return {Conclusion} this |
|
52 | */ |
|
53 | TextValue.prototype.init = function(json){ |
|
54 | ||
55 | Base.prototype.init.call(this, json); |
|
56 | ||
57 | if(json){ |
|
58 | this.setLang(json.lang); |
|
59 | this.setValue(json.value); |
|
60 | } |
|
61 | return this; |
|
62 | }; |
|
63 | ||
64 | /** |
|
65 | * Get the lang |
|
66 | * |
|
67 | * @returns {String} lang |
|
68 | */ |
|
69 | TextValue.prototype.getLang = function(){ |
|
70 | return this.lang; |
|
71 | }; |
|
72 | ||
73 | /** |
|
74 | * Set the lang |
|
75 | * |
|
76 | * @param {String} lang |
|
77 | * @returns {TextValue} This instance |
|
78 | */ |
|
79 | TextValue.prototype.setLang = function(lang){ |
|
80 | this.lang = lang; |
|
81 | return this; |
|
82 | }; |
|
83 | ||
84 | /** |
|
85 | * Get the value |
|
86 | * |
|
87 | * @returns {String} value |
|
88 | */ |
|
89 | TextValue.prototype.getValue = function(){ |
|
90 | return this.value; |
|
91 | }; |
|
92 | ||
93 | /** |
|
94 | * Set the value |
|
95 | * |
|
96 | * @param {String} value |
|
97 | * @returns {TextValue} This instance |
|
98 | */ |
|
99 | TextValue.prototype.setValue = function(value){ |
|
100 | this.value = value; |
|
101 | return this; |
|
102 | }; |
|
103 | ||
104 | /** |
|
105 | * Export the object as JSON |
|
106 | * |
|
107 | * @return {Object} JSON object |
|
108 | */ |
|
109 | TextValue.prototype.toJSON = function(){ |
|
110 | return this._toJSON(Base, TextValue.jsonProps); |
|
111 | }; |
|
112 | ||
113 | module.exports = TextValue; |
@@ 1-110 (lines=110) @@ | ||
1 | var utils = require('../utils'), |
|
2 | Base = require('../Base'); |
|
3 | ||
4 | /** |
|
5 | * Common attributes for all Atom entities |
|
6 | * |
|
7 | * @see {@link https://tools.ietf.org/html/rfc4287#page-7|RFC 4287} |
|
8 | * |
|
9 | * @class AtomCommon |
|
10 | * @extends Base |
|
11 | * @param {Object} [json] |
|
12 | */ |
|
13 | var AtomCommon = function(json){ |
|
14 | ||
15 | // Protect against forgetting the new keyword when calling the constructor |
|
16 | if(!(this instanceof AtomCommon)){ |
|
17 | return new AtomCommon(json); |
|
18 | } |
|
19 | ||
20 | // If the given object is already an instance then just return it. DON'T copy it. |
|
21 | if(AtomCommon.isInstance(json)){ |
|
22 | return json; |
|
23 | } |
|
24 | ||
25 | this.init(json); |
|
26 | }; |
|
27 | ||
28 | AtomCommon.prototype = Object.create(Base.prototype); |
|
29 | ||
30 | AtomCommon._gedxClass = AtomCommon.prototype._gedxClass = 'GedcomX.AtomCommon'; |
|
31 | ||
32 | AtomCommon.jsonProps = [ |
|
33 | 'base', |
|
34 | 'lang' |
|
35 | ]; |
|
36 | ||
37 | /** |
|
38 | * Check whether the given object is an instance of this class. |
|
39 | * |
|
40 | * @param {Object} obj |
|
41 | * @returns {Boolean} |
|
42 | */ |
|
43 | AtomCommon.isInstance = function(obj){ |
|
44 | return utils.isInstance(obj, this._gedxClass); |
|
45 | }; |
|
46 | ||
47 | /** |
|
48 | * Initialize from JSON |
|
49 | * |
|
50 | * @param {Object} |
|
51 | * @return {AtomCommon} this |
|
52 | */ |
|
53 | AtomCommon.prototype.init = function(json){ |
|
54 | ||
55 | Base.prototype.init.call(this, json); |
|
56 | ||
57 | if(json){ |
|
58 | this.setBase(json.base); |
|
59 | this.setLang(json.lang); |
|
60 | } |
|
61 | return this; |
|
62 | }; |
|
63 | ||
64 | /** |
|
65 | * Set the base attribute |
|
66 | * |
|
67 | * @param {String} base |
|
68 | * @return {AtomCommon} this |
|
69 | */ |
|
70 | AtomCommon.prototype.setBase = function(base){ |
|
71 | this.base = base; |
|
72 | return this; |
|
73 | }; |
|
74 | ||
75 | /** |
|
76 | * Get the base |
|
77 | * |
|
78 | * @return {String} base |
|
79 | */ |
|
80 | AtomCommon.prototype.getBase = function(base){ |
|
81 | return this.base; |
|
82 | }; |
|
83 | ||
84 | /** |
|
85 | * Set the lang |
|
86 | * |
|
87 | * @param {String} lang |
|
88 | * @return {AtomCommon} this |
|
89 | */ |
|
90 | AtomCommon.prototype.setLang = function(lang){ |
|
91 | this.lang = lang; |
|
92 | return this; |
|
93 | }; |
|
94 | ||
95 | /** |
|
96 | * Get the lang |
|
97 | * |
|
98 | * @return {String} lang |
|
99 | */ |
|
100 | AtomCommon.prototype.getLang = function(lang){ |
|
101 | return this.lang; |
|
102 | }; |
|
103 | ||
104 | /** |
|
105 | * Export the object as JSON |
|
106 | * |
|
107 | * @return {Object} JSON object |
|
108 | */ |
|
109 | AtomCommon.prototype.toJSON = function(){ |
|
110 | return this._toJSON(Base, AtomCommon.jsonProps); |
|
111 | }; |
|
112 | ||
113 | module.exports = AtomCommon; |