getDelimiterPrecedesLast()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
/*
3
 * citeproc-php
4
 *
5
 * @link        http://github.com/seboettg/citeproc-php for the source repository
6
 * @copyright   Copyright (c) 2017 Sebastian Böttger.
7
 * @license     https://opensource.org/licenses/MIT
8
 */
9
10
namespace Seboettg\CiteProc\Style;
11
12
use Seboettg\CiteProc\CiteProc;
13
use Seboettg\CiteProc\Rendering\HasParent;
14
use Seboettg\CiteProc\Rendering\Name\Name;
15
use Seboettg\CiteProc\Rendering\Name\Names;
16
use Seboettg\CiteProc\Root\Root;
17
use SimpleXMLElement;
18
19
/**
20
 * Class InheritableNameAttributesTrait
21
 *
22
 * Attributes for the cs:names and cs:name elements may also be set on cs:style, cs:citation and cs:bibliography. This
23
 * eliminates the need to repeat the same attributes and attribute values for every occurrence of the cs:names and
24
 * cs:name elements.
25
 *
26
 * The available inheritable attributes for cs:name are and, delimiter-precedes-et-al, delimiter-precedes-last,
27
 * et-al-min, et-al-use-first, et-al-use-last, et-al-subsequent-min, et-al-subsequent-use-first, initialize,
28
 * initialize-with, name-as-sort-order and sort-separator. The attributes name-form and name-delimiter correspond to the
29
 * form and delimiter attributes on cs:name. Similarly, names-delimiter corresponds to the delimiter attribute on
30
 * cs:names.
31
 *
32
 *
33
 * @package Seboettg\CiteProc\Style
34
 * @author Sebastian Böttger <[email protected]>
35
 */
36
trait InheritableNameAttributesTrait
37
{
38
    public static $attributes = [
39
        'and',
40
        'delimiter-precedes-et-al',
41
        'delimiter-precedes-last',
42
        'et-al-min',
43
        'et-al-use-first',
44
        'et-al-use-last',
45
        'et-al-subsequent-min',
46
        'et-al-subsequent-use-first',
47
        'initialize',
48
        'initialize-with',
49
        'name-as-sort-order',
50
        'sort-separator',
51
        'name-form',
52
        'form',
53
        'name-delimiter',
54
        'delimiter'
55
    ];
56
57
    /**
58
     * @var bool
59
     */
60
    protected $attributesInitialized = false;
61
62
    /**
63
     * Specifies the delimiter between the second to last and last name of the names in a name variable. Allowed values
64
     * are “text” (selects the “and” term, e.g. “Doe, Johnson and Smith”) and “symbol” (selects the ampersand,
65
     * e.g. “Doe, Johnson & Smith”).
66
     *
67
     * @var string
68
     */
69
    private $and;
70
71
    /**
72
     * Determines when the name delimiter or a space is used between a truncated name list and the “et-al”
73
     * (or “and others”) term in case of et-al abbreviation. Allowed values:
74
     * - “contextual” - (default), name delimiter is only used for name lists truncated to two or more names
75
     *   - 1 name: “J. Doe et al.”
76
     *   - 2 names: “J. Doe, S. Smith, et al.”
77
     * - “after-inverted-name” - name delimiter is only used if the preceding name is inverted as a result of the
78
     *   - name-as-sort-order attribute. E.g. with name-as-sort-order set to “first”:
79
     *   - “Doe, J., et al.”
80
     *   - “Doe, J., S. Smith et al.”
81
     * - “always” - name delimiter is always used
82
     *   - 1 name: “J. Doe, et al.”
83
     *   - 2 names: “J. Doe, S. Smith, et al.”
84
     * - “never” - name delimiter is never used
85
     *   - 1 name: “J. Doe et al.”
86
     *   - 2 names: “J. Doe, S. Smith et al.”
87
     *
88
     * @var string
89
     */
90
    private $delimiterPrecedesEtAl;
91
92
    /**
93
     * Determines when the name delimiter is used to separate the second to last and the last name in name lists (if
94
     * and is not set, the name delimiter is always used, regardless of the value of delimiter-precedes-last). Allowed
95
     * values:
96
     *
97
     * - “contextual” - (default), name delimiter is only used for name lists with three or more names
98
     *   - 2 names: “J. Doe and T. Williams”
99
     *   - 3 names: “J. Doe, S. Smith, and T. Williams”
100
     * - “after-inverted-name” - name delimiter is only used if the preceding name is inverted as a result of the
101
     *   name-as-sort-order attribute. E.g. with name-as-sort-order set to “first”:
102
     *   - “Doe, J., and T. Williams”
103
     *   - “Doe, J., S. Smith and T. Williams”
104
     * - “always” - name delimiter is always used
105
     *   - 2 names: “J. Doe, and T. Williams”
106
     *   - 3 names: “J. Doe, S. Smith, and T. Williams”
107
     * - “never” - name delimiter is never used
108
     *   - 2 names: “J. Doe and T. Williams”
109
     *   - 3 names: “J. Doe, S. Smith and T. Williams”
110
     *
111
     * @var string
112
     */
113
    private $delimiterPrecedesLast;
114
115
    /**
116
     * Use of etAlMin (et-al-min attribute) and etAlUseFirst (et-al-use-first attribute) enables et-al abbreviation. If
117
     * the number of names in a name variable matches or exceeds the number set on etAlMin, the rendered name list is
118
     * truncated after reaching the number of names set on etAlUseFirst.
119
     *
120
     * @var int
121
     */
122
    private $etAlMin;
123
124
    /**
125
     * Use of etAlMin (et-al-min attribute) and etAlUseFirst (et-al-use-first attribute) enables et-al abbreviation. If
126
     * the number of names in a name variable matches or exceeds the number set on etAlMin, the rendered name list is
127
     * truncated after reaching the number of names set on etAlUseFirst.
128
     *
129
     * @var int
130
     */
131
    private $etAlUseFirst;
132
133
    /**
134
     * When set to “true” (the default is “false”), name lists truncated by et-al abbreviation are followed by the name
135
     * delimiter, the ellipsis character, and the last name of the original name list. This is only possible when the
136
     * original name list has at least two more names than the truncated name list (for this the value of
137
     * et-al-use-first/et-al-subsequent-min must be at least 2 less than the value of
138
     * et-al-min/et-al-subsequent-use-first).
139
     *
140
     * @var bool
141
     */
142
    private $etAlUseLast = false;
143
144
    /**
145
     * If used, the values of these attributes (et-al-subsequent-min and et-al-subsequent-use-first) replace those of
146
     * respectively et-al-min and et-al-use-first for subsequent cites (cites referencing earlier cited items).
147
     *
148
     * @var int
149
     */
150
    private $etAlSubsequentMin;
151
152
    /**
153
     * If used, the values of these attributes (et-al-subsequent-min and et-al-subsequent-use-first) replace those of
154
     * respectively et-al-min and et-al-use-first for subsequent cites (cites referencing earlier cited items).
155
     *
156
     * @var int
157
     */
158
    private $etAlSubsequentUseFirst;
159
160
    /**
161
     * When set to “false” (the default is “true”), given names are no longer initialized when “initialize-with” is set.
162
     * However, the value of “initialize-with” is still added after initials present in the full name (e.g. with
163
     * initialize set to “false”, and initialize-with set to ”.”, “James T Kirk” becomes “James T. Kirk”).
164
     *
165
     * @var bool
166
     */
167
    private $initialize = true;
168
169
    /**
170
     * When set, given names are converted to initials. The attribute value is added after each initial (”.” results
171
     * in “J.J. Doe”). For compound given names (e.g. “Jean-Luc”), hyphenation of the initials can be controlled with
172
     * the global initialize-with-hyphen option
173
     *
174
     * @var string
175
     */
176
    private $initializeWith = false;
177
178
    /**
179
     * Specifies that names should be displayed with the given name following the family name (e.g. “John Doe” becomes
180
     * “Doe, John”). The attribute has two possible values:
181
     *   - “first” - attribute only has an effect on the first name of each name variable
182
     *   - “all” - attribute has an effect on all names
183
     * Note that even when name-as-sort-order changes the name-part order, the display order is not necessarily the same
184
     * as the sorting order for names containing particles and suffixes (see Name-part order). Also, name-as-sort-order
185
     * only affects names written in the latin or Cyrillic alphabets. Names written in other alphabets (e.g. Asian
186
     * scripts) are always displayed with the family name preceding the given name.
187
     *
188
     * @var string
189
     */
190
    private $nameAsSortOrder = "";
191
192
    /**
193
     * Sets the delimiter for name-parts that have switched positions as a result of name-as-sort-order. The default
194
     * value is ”, ” (“Doe, John”). As is the case for name-as-sort-order, this attribute only affects names written in
195
     * the latin or Cyrillic alphabets.
196
     *
197
     * @var string
198
     */
199
    private $sortSeparator = ", ";
200
201
    /**
202
     * Specifies whether all the name-parts of personal names should be displayed (value “long”, the default), or only
203
     * the family name and the non-dropping-particle (value “short”). A third value, “count”, returns the total number
204
     * of names that would otherwise be rendered by the use of the cs:names element (taking into account the effects of
205
     * et-al abbreviation and editor/translator collapsing), which allows for advanced sorting.
206
     *
207
     * @var string
208
     */
209
    private $form;
210
211
    private $nameForm = "long";
212
213
    private $nameDelimiter = ", ";
214
215
    public function isDescendantOfMacro()
216
    {
217
        $parent = $this->parent;
218
219
        while ($parent != null && $parent instanceof HasParent) {
220
            if ($parent instanceof Macro) {
221
                return true;
222
            }
223
            $parent = $parent->getParent();
224
        }
225
        return false;
226
    }
227
228
    /**
229
     * @param SimpleXMLElement $node
230
     */
231
    public function initInheritableNameAttributes(SimpleXMLElement $node)
232
    {
233
        $context = CiteProc::getContext();
234
        $parentStyleElement = null;
235
        if ($this instanceof  Name || $this instanceof Names) {
236
            if ($context->getMode() === "bibliography") {
237
                if ($this->isDescendantOfMacro()) {
238
                    $parentStyleElement = $context->getRoot();
239
                } else {
240
                    $parentStyleElement = $context->getBibliography();
241
                }
242
            } else {
243
                $parentStyleElement = $context->getCitation();
244
            }
245
        } elseif ($this instanceof StyleElement) {
246
            $parentStyleElement = $context->getRoot();
247
        }
248
249
        foreach (self::$attributes as $nameAttribute) {
250
            $attribute = $node[$nameAttribute];
251
            switch ($nameAttribute) {
252
                case 'and':
253
                    if (!empty($attribute)) {
254
                        $this->and = (string) $attribute;
0 ignored issues
show
Bug introduced by
The property and is declared private in Seboettg\CiteProc\Style\StyleElement and cannot be accessed from this context.
Loading history...
Bug introduced by
The property and is declared private in Seboettg\CiteProc\Rendering\Name\Names and cannot be accessed from this context.
Loading history...
Bug introduced by
The property and is declared private in Seboettg\CiteProc\Rendering\Name\Name and cannot be accessed from this context.
Loading history...
255
                    } elseif (!empty($parentStyleElement)) { //inherit from parent style
256
                        $this->and = $parentStyleElement->getAnd();
257
                    }
258
                    break;
259
                case 'delimiter-precedes-et-al':
260
                    if (!empty($attribute)) {
261
                        $this->delimiterPrecedesEtAl = (string) $attribute;
0 ignored issues
show
Bug introduced by
The property delimiterPrecedesEtAl is declared private in Seboettg\CiteProc\Rendering\Name\Names and cannot be accessed from this context.
Loading history...
Bug introduced by
The property delimiterPrecedesEtAl is declared private in Seboettg\CiteProc\Rendering\Name\Name and cannot be accessed from this context.
Loading history...
Bug introduced by
The property delimiterPrecedesEtAl is declared private in Seboettg\CiteProc\Style\StyleElement and cannot be accessed from this context.
Loading history...
262
                    } elseif (!empty($parentStyleElement)) { //inherit from parent style
263
                        $this->delimiterPrecedesEtAl = $parentStyleElement->getDelimiterPrecedesEtAl();
264
                    }
265
                    break;
266
                case 'delimiter-precedes-last':
267
                    if (!empty($attribute)) {
268
                        $this->delimiterPrecedesLast = (string) $attribute;
0 ignored issues
show
Bug introduced by
The property delimiterPrecedesLast is declared private in Seboettg\CiteProc\Rendering\Name\Name and cannot be accessed from this context.
Loading history...
Bug introduced by
The property delimiterPrecedesLast is declared private in Seboettg\CiteProc\Style\StyleElement and cannot be accessed from this context.
Loading history...
Bug introduced by
The property delimiterPrecedesLast is declared private in Seboettg\CiteProc\Rendering\Name\Names and cannot be accessed from this context.
Loading history...
269
                    } elseif (!empty($parentStyleElement)) { //inherit from parent style
270
                        $this->delimiterPrecedesLast = $parentStyleElement->getDelimiterPrecedesLast();
271
                    }
272
                    break;
273
                case 'et-al-min':
274
                    if (!empty($attribute)) {
275
                        $this->etAlMin = intval((string) $attribute);
0 ignored issues
show
Bug introduced by
The property etAlMin is declared private in Seboettg\CiteProc\Rendering\Name\Name and cannot be accessed from this context.
Loading history...
Bug introduced by
The property etAlMin is declared private in Seboettg\CiteProc\Style\StyleElement and cannot be accessed from this context.
Loading history...
Bug introduced by
The property etAlMin is declared private in Seboettg\CiteProc\Rendering\Name\Names and cannot be accessed from this context.
Loading history...
276
                    } elseif (!empty($parentStyleElement)) {
277
                        $this->etAlMin = $parentStyleElement->getEtAlMin();
278
                    }
279
                    break;
280
                case 'et-al-use-first':
281
                    if (!empty($attribute)) {
282
                        $this->etAlUseFirst = intval((string) $attribute);
0 ignored issues
show
Bug introduced by
The property etAlUseFirst is declared private in Seboettg\CiteProc\Rendering\Name\Name and cannot be accessed from this context.
Loading history...
Bug introduced by
The property etAlUseFirst is declared private in Seboettg\CiteProc\Rendering\Name\Names and cannot be accessed from this context.
Loading history...
Bug introduced by
The property etAlUseFirst is declared private in Seboettg\CiteProc\Style\StyleElement and cannot be accessed from this context.
Loading history...
283
                    } elseif (!empty($parentStyleElement)) {
284
                        $this->etAlUseFirst = $parentStyleElement->getEtAlUseFirst();
285
                    }
286
                    break;
287
                case 'et-al-subsequent-min':
288
                    if (!empty($attribute)) {
289
                        $this->etAlSubsequentMin = intval((string) $attribute);
0 ignored issues
show
Bug introduced by
The property etAlSubsequentMin is declared private in Seboettg\CiteProc\Style\StyleElement and cannot be accessed from this context.
Loading history...
Bug introduced by
The property etAlSubsequentMin is declared private in Seboettg\CiteProc\Rendering\Name\Name and cannot be accessed from this context.
Loading history...
Bug introduced by
The property etAlSubsequentMin is declared private in Seboettg\CiteProc\Rendering\Name\Names and cannot be accessed from this context.
Loading history...
290
                    } elseif (!empty($parentStyleElement)) {
291
                        $this->etAlSubsequentMin = $parentStyleElement->getEtAlSubsequentMin();
292
                    }
293
                    break;
294
                case 'et-al-subsequent-use-first':
295
                    if (!empty($attribute)) {
296
                        $this->etAlSubsequentUseFirst = intval((string) $attribute);
0 ignored issues
show
Bug introduced by
The property etAlSubsequentUseFirst is declared private in Seboettg\CiteProc\Style\StyleElement and cannot be accessed from this context.
Loading history...
Bug introduced by
The property etAlSubsequentUseFirst is declared private in Seboettg\CiteProc\Rendering\Name\Name and cannot be accessed from this context.
Loading history...
Bug introduced by
The property etAlSubsequentUseFirst is declared private in Seboettg\CiteProc\Rendering\Name\Names and cannot be accessed from this context.
Loading history...
297
                    } elseif (!empty($parentStyleElement)) {
298
                        $this->etAlSubsequentUseFirst = $parentStyleElement->getEtAlSubsequentUseFirst();
299
                    }
300
                    break;
301
                case 'et-al-use-last':
302
                    if (!empty($attribute)) {
303
                        $this->etAlUseLast = ((string) $attribute) === "true";
0 ignored issues
show
Bug introduced by
The property etAlUseLast is declared private in Seboettg\CiteProc\Style\StyleElement and cannot be accessed from this context.
Loading history...
Bug introduced by
The property etAlUseLast is declared private in Seboettg\CiteProc\Rendering\Name\Name and cannot be accessed from this context.
Loading history...
Bug introduced by
The property etAlUseLast is declared private in Seboettg\CiteProc\Rendering\Name\Names and cannot be accessed from this context.
Loading history...
304
                    } elseif (!empty($parentStyleElement)) {
305
                        $this->etAlUseLast = $parentStyleElement->getEtAlUseLast();
306
                    }
307
                    break;
308
                case 'initialize':
309
                    if (!empty($attribute)) {
310
                        $this->initialize = ((string) $attribute) === "true";
0 ignored issues
show
Bug introduced by
The property initialize is declared private in Seboettg\CiteProc\Rendering\Name\Names and cannot be accessed from this context.
Loading history...
Bug introduced by
The property initialize is declared private in Seboettg\CiteProc\Rendering\Name\Name and cannot be accessed from this context.
Loading history...
Bug introduced by
The property initialize is declared private in Seboettg\CiteProc\Style\StyleElement and cannot be accessed from this context.
Loading history...
311
                    } elseif (!empty($parentStyleElement)) {
312
                        $this->initialize = $parentStyleElement->getInitialize();
313
                    }
314
                    break;
315
                case 'initialize-with':
316
                    if (!empty($attribute)) {
317
                        $this->initializeWith = (string) $attribute;
0 ignored issues
show
Bug introduced by
The property initializeWith is declared private in Seboettg\CiteProc\Style\StyleElement and cannot be accessed from this context.
Loading history...
Bug introduced by
The property initializeWith is declared private in Seboettg\CiteProc\Rendering\Name\Names and cannot be accessed from this context.
Loading history...
Bug introduced by
The property initializeWith is declared private in Seboettg\CiteProc\Rendering\Name\Name and cannot be accessed from this context.
Loading history...
318
                    } elseif (!empty($parentStyleElement)) {
319
                        $this->initializeWith = $parentStyleElement->getInitializeWith();
320
                    }
321
                    break;
322
                case 'name-as-sort-order':
323
                    if (!empty($attribute)) {
324
                        $this->nameAsSortOrder = (string) $attribute;
0 ignored issues
show
Bug introduced by
The property nameAsSortOrder is declared private in Seboettg\CiteProc\Style\StyleElement and cannot be accessed from this context.
Loading history...
Bug introduced by
The property nameAsSortOrder is declared private in Seboettg\CiteProc\Rendering\Name\Name and cannot be accessed from this context.
Loading history...
Bug introduced by
The property nameAsSortOrder is declared private in Seboettg\CiteProc\Rendering\Name\Names and cannot be accessed from this context.
Loading history...
325
                    } elseif (!empty($parentStyleElement)) {
326
                        $this->nameAsSortOrder = $parentStyleElement->getNameAsSortOrder();
327
                    }
328
                    break;
329
                case 'sort-separator':
330
                    if (!empty($attribute)) {
331
                        $this->sortSeparator = (string) $attribute;
0 ignored issues
show
Bug introduced by
The property sortSeparator is declared private in Seboettg\CiteProc\Rendering\Name\Names and cannot be accessed from this context.
Loading history...
Bug introduced by
The property sortSeparator is declared private in Seboettg\CiteProc\Rendering\Name\Name and cannot be accessed from this context.
Loading history...
Bug introduced by
The property sortSeparator is declared private in Seboettg\CiteProc\Style\StyleElement and cannot be accessed from this context.
Loading history...
332
                    } elseif (!empty($parentStyleElement)) {
333
                        $this->sortSeparator = $parentStyleElement->getSortSeparator();
334
                    }
335
                    break;
336
                case 'name-form':
337
                    if ($this instanceof Root || $this instanceof StyleElement) {
338
                        if (!empty($attribute)) {
339
                            $this->setNameForm((string) $attribute);
340
                        } elseif (!empty($parentStyleElement)) {
341
                            $this->setNameForm($parentStyleElement->getNameForm());
342
                        }
343
                    }
344
                    break;
345
                case 'form':
346
                    if ($this instanceof Name) {
347
                        if (!empty($attribute)) {
348
                            $this->setForm((string) $attribute);
349
                        } elseif (!empty($parentStyleElement)) {
350
                            $this->setForm($parentStyleElement->getNameForm());
351
                        }
352
                    }
353
                    break;
354
                case 'name-delimiter':
355
                    if ($this instanceof Root || $this instanceof StyleElement) {
356
                        if (!empty($attribute)) {
357
                            $this->setNameDelimiter((string) $attribute);
358
                        } elseif (!empty($parentStyleElement)) {
359
                            $this->setNameDelimiter($parentStyleElement->getNameDelimiter());
360
                        }
361
                    } else {
362
                        /* The attributes name-form and name-delimiter correspond to the form and delimiter attributes
363
                           on cs:name. Similarly, names-delimiter corresponds to the delimiter attribute on cs:names. */
364
                        if (!empty($attribute)) {
365
                            $this->nameDelimiter = $this->delimiter = (string) $attribute;
0 ignored issues
show
Bug introduced by
The property delimiter is declared private in Seboettg\CiteProc\Rendering\Name\Name and cannot be accessed from this context.
Loading history...
Bug Best Practice introduced by
The property delimiter does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
Bug introduced by
The property nameDelimiter is declared private in Seboettg\CiteProc\Rendering\Name\Names and cannot be accessed from this context.
Loading history...
Bug introduced by
The property nameDelimiter is declared private in Seboettg\CiteProc\Rendering\Name\Name and cannot be accessed from this context.
Loading history...
Bug introduced by
The property delimiter is declared private in Seboettg\CiteProc\Rendering\Name\Names and cannot be accessed from this context.
Loading history...
366
                        } elseif (!empty($parentStyleElement)) {
367
                            $this->nameDelimiter = $this->delimiter = $parentStyleElement->getNameDelimiter();
368
                        }
369
                    }
370
                    break;
371
                case 'delimiter':
372
                    if ($this instanceof Name) {
373
                        if (!empty($attribute)) {
374
                            $this->setDelimiter((string) $attribute);
375
                        } elseif (!empty($parentStyleElement)) {
376
                            $this->setDelimiter($parentStyleElement->getNameDelimiter());
377
                        }
378
                    }
379
            }
380
        }
381
        $this->attributesInitialized = true;
0 ignored issues
show
Bug introduced by
The property attributesInitialized is declared protected in Seboettg\CiteProc\Style\StyleElement and cannot be accessed from this context.
Loading history...
Bug introduced by
The property attributesInitialized is declared protected in Seboettg\CiteProc\Rendering\Name\Name and cannot be accessed from this context.
Loading history...
Bug introduced by
The property attributesInitialized is declared protected in Seboettg\CiteProc\Rendering\Name\Names and cannot be accessed from this context.
Loading history...
382
    }
383
384
    /**
385
     * @return string
386
     */
387
    public function getAnd()
388
    {
389
        return $this->and;
390
    }
391
392
    /**
393
     * @param string $and
394
     */
395
    public function setAnd($and)
396
    {
397
        $this->and = $and;
398
    }
399
400
    /**
401
     * @return string
402
     */
403
    public function getDelimiterPrecedesEtAl()
404
    {
405
        return $this->delimiterPrecedesEtAl;
406
    }
407
408
    /**
409
     * @param string $delimiterPrecedesEtAl
410
     */
411
    public function setDelimiterPrecedesEtAl($delimiterPrecedesEtAl)
412
    {
413
        $this->delimiterPrecedesEtAl = $delimiterPrecedesEtAl;
414
    }
415
416
    /**
417
     * @return string
418
     */
419
    public function getDelimiterPrecedesLast()
420
    {
421
        return $this->delimiterPrecedesLast;
422
    }
423
424
    /**
425
     * @param string $delimiterPrecedesLast
426
     */
427
    public function setDelimiterPrecedesLast($delimiterPrecedesLast)
428
    {
429
        $this->delimiterPrecedesLast = $delimiterPrecedesLast;
430
    }
431
432
    /**
433
     * @return int
434
     */
435
    public function getEtAlMin()
436
    {
437
        return $this->etAlMin;
438
    }
439
440
    /**
441
     * @param int $etAlMin
442
     */
443
    public function setEtAlMin($etAlMin)
444
    {
445
        $this->etAlMin = $etAlMin;
446
    }
447
448
    /**
449
     * @return int
450
     */
451
    public function getEtAlUseFirst()
452
    {
453
        return $this->etAlUseFirst;
454
    }
455
456
    /**
457
     * @param int $etAlUseFirst
458
     */
459
    public function setEtAlUseFirst($etAlUseFirst)
460
    {
461
        $this->etAlUseFirst = $etAlUseFirst;
462
    }
463
464
    /**
465
     * @return bool
466
     */
467
    public function getEtAlUseLast()
468
    {
469
        return $this->etAlUseLast;
470
    }
471
472
    /**
473
     * @param bool $etAlUseLast
474
     */
475
    public function setEtAlUseLast($etAlUseLast)
476
    {
477
        $this->etAlUseLast = $etAlUseLast;
478
    }
479
480
    /**
481
     * @return int
482
     */
483
    public function getEtAlSubsequentMin()
484
    {
485
        return $this->etAlSubsequentMin;
486
    }
487
488
    /**
489
     * @param int $etAlSubsequentMin
490
     */
491
    public function setEtAlSubsequentMin($etAlSubsequentMin)
492
    {
493
        $this->etAlSubsequentMin = $etAlSubsequentMin;
494
    }
495
496
    /**
497
     * @return int
498
     */
499
    public function getEtAlSubsequentUseFirst()
500
    {
501
        return $this->etAlSubsequentUseFirst;
502
    }
503
504
    /**
505
     * @param int $etAlSubsequentUseFirst
506
     */
507
    public function setEtAlSubsequentUseFirst($etAlSubsequentUseFirst)
508
    {
509
        $this->etAlSubsequentUseFirst = $etAlSubsequentUseFirst;
510
    }
511
512
    /**
513
     * @return bool
514
     */
515
    public function getInitialize()
516
    {
517
        return $this->initialize;
518
    }
519
520
    /**
521
     * @param bool $initialize
522
     */
523
    public function setInitialize($initialize)
524
    {
525
        $this->initialize = $initialize;
526
    }
527
528
    /**
529
     * @return string
530
     */
531
    public function getInitializeWith()
532
    {
533
        return $this->initializeWith;
534
    }
535
536
    /**
537
     * @param string $initializeWith
538
     */
539
    public function setInitializeWith($initializeWith)
540
    {
541
        $this->initializeWith = $initializeWith;
542
    }
543
544
    /**
545
     * @return string
546
     */
547
    public function getNameAsSortOrder()
548
    {
549
        return $this->nameAsSortOrder;
550
    }
551
552
    /**
553
     * @param string $nameAsSortOrder
554
     */
555
    public function setNameAsSortOrder($nameAsSortOrder)
556
    {
557
        $this->nameAsSortOrder = $nameAsSortOrder;
558
    }
559
560
    /**
561
     * @return string
562
     */
563
    public function getSortSeparator()
564
    {
565
        return $this->sortSeparator;
566
    }
567
568
    /**
569
     * @param string $sortSeparator
570
     */
571
    public function setSortSeparator($sortSeparator)
572
    {
573
        $this->sortSeparator = $sortSeparator;
574
    }
575
576
    /**
577
     * @return mixed
578
     */
579
    public function getForm()
580
    {
581
        return $this->form;
582
    }
583
584
    /**
585
     * @param mixed $form
586
     */
587
    public function setForm($form)
588
    {
589
        $this->form = $form;
590
    }
591
592
    /**
593
     * @return string
594
     */
595
    public function getNameForm()
596
    {
597
        return $this->nameForm;
598
    }
599
600
    /**
601
     * @param string $nameForm
602
     */
603
    public function setNameForm($nameForm)
604
    {
605
        $this->nameForm = $nameForm;
606
    }
607
608
    /**
609
     * @return string
610
     */
611
    public function getNameDelimiter()
612
    {
613
        return $this->nameDelimiter;
614
    }
615
616
    /**
617
     * @param string $nameDelimiter
618
     */
619
    public function setNameDelimiter($nameDelimiter)
620
    {
621
        $this->nameDelimiter = $nameDelimiter;
622
    }
623
}
624