src/records/SourceReference.js   A
last analyzed

Complexity

Total Complexity 6
Complexity/F 1.2

Size

Lines of Code 53
Function Count 5

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 0
c 1
b 0
f 0
nc 2
dl 0
loc 53
rs 10
wmc 6
mnd 1
bc 6
fnc 5
bpm 1.2
cpm 1.2
noi 0
1
/**
2
 * Record extensions to SourceReference
3
 */
4
module.exports = function(GedcomX){
5
  
6
  // Extend serialization properties
7
  GedcomX.SourceReference.jsonProps.push('qualifiers');
8
  
9
  // Override init()
10
  var oldSourceReferenceInit = GedcomX.SourceReference.prototype.init;
11
  GedcomX.SourceReference.prototype.init = function(json){
12
    oldSourceReferenceInit.call(this, json);
13
    if(json){
14
      this.setQualifiers(json.qualifiers);
15
    }
16
  };
17
  
18
  /**
19
   * Set the qualifiers
20
   * 
21
   * @function setQualifiers
22
   * @instance
23
   * @memberof SourceReference
24
   * @param {Qualifier[]} qualifiers
25
   * @return {SourceReference} this
26
   */
27
  GedcomX.SourceReference.prototype.setQualifiers = function(qualifiers){
28
    return this._setArray(qualifiers, 'qualifiers', 'addQualifier');
29
  };
30
  
31
  /**
32
   * Add a qualifier
33
   * 
34
   * @function addQualifier
35
   * @instance
36
   * @memberof SourceReference
37
   * @param {Qualifiers} qualifier
38
   * @return {SourceReference} this
39
   */
40
  GedcomX.SourceReference.prototype.addQualifier = function(qualifier){
41
    return this._arrayPush(qualifier, 'qualifiers', GedcomX.Qualifier);
42
  };
43
  
44
  /**
45
   * Get the qualifiers
46
   * 
47
   * @function getQualifiers
48
   * @instance
49
   * @memberof SourceReference
50
   * @return {Qualifier[]} qualifiers
51
   */
52
  GedcomX.SourceReference.prototype.getQualifiers = function(){
53
    return this.qualifiers || [];
54
  };
55
  
56
};