Passed
Push — release/2.5.2 ( bd9268 )
by Sebastian
03:30 queued 01:02
created

getDelimiterPrecedesEtAl()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
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 181
    public function initInheritableNameAttributes(SimpleXMLElement $node)
232
    {
233 181
        $context = CiteProc::getContext();
234 181
        $parentStyleElement = null;
235 181
        $root = $context->getRoot();
236 181
        if ($this instanceof  Name || $this instanceof Names) {
237 128
            if ($context->getMode() === "bibliography") {
238 68
                $parentStyleElement = $context->getBibliography();
239
            } else {
240 128
                $parentStyleElement = $context->getCitation();
241
            }
242 177
        } elseif ($this instanceof StyleElement) {
243 177
            $parentStyleElement = $root;
244
        }
245
246 181
        foreach (self::$attributes as $nameAttribute) {
247 181
            $attribute = $node[$nameAttribute];
248 181
            switch ($nameAttribute) {
249 181
                case 'and':
250 181
                    if (!empty($attribute)) {
251 57
                        $this->setAnd((string) $attribute);
252 181
                    } elseif (!empty($parentStyleElement) && !empty($parentStyleElement->getAnd())) {
253 6
                        $this->setAnd($parentStyleElement->getAnd());
254 181
                    } elseif (!empty($root) && !empty($root->getAnd())) {
255 5
                        $this->setAnd($root->getAnd());
256
                    }
257 181
                    break;
258 181
                case 'delimiter-precedes-et-al':
259 181
                    if (!empty($attribute)) {
260 8
                        $this->setDelimiterPrecedesEtAl((string) $attribute);
261 181
                    } elseif (!empty($parentStyleElement) && !empty($parentStyleElement->getDelimiterPrecedesEtAl())) {
262 6
                        $this->setDelimiterPrecedesEtAl($parentStyleElement->getDelimiterPrecedesEtAl());
263 181
                    } elseif (!empty($root)) {
264 177
                        $this->setDelimiterPrecedesEtAl($root->getDelimiterPrecedesEtAl());
265
                    }
266 181
                    break;
267 181
                case 'delimiter-precedes-last':
268 181
                    if (!empty($attribute)) {
269 52
                        $this->setDelimiterPrecedesLast((string) $attribute);
270 181
                    } elseif (!empty($parentStyleElement) && !empty($parentStyleElement->getDelimiterPrecedesLast())) {
271 6
                        $this->setDelimiterPrecedesLast($parentStyleElement->getDelimiterPrecedesLast());
272 181
                    } elseif (!empty($root)) {
273 177
                        $this->setDelimiterPrecedesLast($root->getDelimiterPrecedesLast());
274
                    }
275 181
                    break;
276 181
                case 'et-al-min':
277 181
                    if (!empty($attribute)) {
278 69
                        $this->setEtAlMin(intval((string) $attribute));
279 181
                    } elseif (!empty($parentStyleElement) && !empty($parentStyleElement->getEtAlMin())) {
280 50
                        $this->setEtAlMin($parentStyleElement->getEtAlMin());
281 181
                    } elseif (!empty($root)) {
282 176
                        $this->setEtAlMin($root->getEtAlMin());
283
                    }
284 181
                    break;
285 181
                case 'et-al-use-first':
286 181
                    if (!empty($attribute)) {
287 69
                        $this->setEtAlUseFirst(intval((string) $attribute));
288 181
                    } elseif (!empty($parentStyleElement) && !empty($parentStyleElement->getEtAlUseFirst())) {
289 50
                        $this->setEtAlUseFirst($parentStyleElement->getEtAlUseFirst());
290 181
                    } elseif (!empty($root)) {
291 176
                        $this->setEtAlUseFirst($root->getEtAlUseFirst());
292
                    }
293 181
                    break;
294 181
                case 'et-al-subsequent-min':
295 181
                    if (!empty($attribute)) {
296 3
                        $this->setEtAlSubsequentMin(intval((string) $attribute));
297 181
                    } elseif (!empty($parentStyleElement) && !empty($parentStyleElement->getEtAlSubsequentMin())) {
298 2
                        $this->setEtAlSubsequentMin($parentStyleElement->getEtAlSubsequentMin());
299 181
                    } elseif (!empty($root)) {
300 177
                        $this->setEtAlSubsequentMin($root->getEtAlSubsequentMin());
301
                    }
302 181
                    break;
303 181
                case 'et-al-subsequent-use-first':
304 181
                    if (!empty($attribute)) {
305 3
                        $this->etAlSubsequentUseFirst = intval((string) $attribute);
0 ignored issues
show
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...
Bug introduced by
The property etAlSubsequentUseFirst is declared private in Seboettg\CiteProc\Style\StyleElement and cannot be accessed from this context.
Loading history...
306 3
                        $this->setEtAlSubsequentUseFirst(intval((string) $attribute));
307 181
                    } elseif (!empty($parentStyleElement) && !empty($parentStyleElement->getEtAlSubsequentUseFirst())) {
308 2
                        $this->setEtAlSubsequentUseFirst($parentStyleElement->getEtAlSubsequentUseFirst());
309 181
                    } elseif (!empty($root)) {
310 177
                        $this->setEtAlSubsequentUseFirst($root->getEtAlSubsequentUseFirst());
311
                    }
312 181
                    break;
313 181
                case 'et-al-use-last':
314 181
                    if (!empty($attribute)) {
315 19
                        $this->setEtAlUseLast(((string) $attribute) === "true");
316 181
                    } elseif (!empty($parentStyleElement) && !empty($parentStyleElement->getEtAlUseLast())) {
317 13
                        $this->setEtAlUseLast($parentStyleElement->getEtAlUseLast());
318 181
                    } elseif (!empty($root)) {
319 176
                        $this->setEtAlUseLast($root->getEtAlUseLast());
320
                    }
321 181
                    break;
322 181
                case 'initialize':
323 181
                    if (!empty($attribute)) {
324 2
                        $this->setInitialize(((string) $attribute) === "true");
325 181
                    } elseif (!empty($parentStyleElement) && !empty($parentStyleElement->getInitialize())) {
326 177
                        $this->setInitialize($parentStyleElement->getInitialize());
327 181
                    } elseif (!empty($root)) {
328 123
                        $this->setInitialize($root->getInitialize());
329
                    }
330 181
                    break;
331 181
                case 'initialize-with':
332 181
                    if (!empty($attribute)) {
333 36
                        $this->setInitializeWith((string) $attribute);
334 181
                    } elseif (!empty($parentStyleElement) && !empty($parentStyleElement->getInitializeWith())) {
335 1
                        $this->setInitializeWith($parentStyleElement->getInitializeWith());
336 181
                    } elseif (!empty($root)) {
337 177
                        $this->setInitializeWith($root->getInitializeWith());
338
                    }
339 181
                    break;
340 181
                case 'name-as-sort-order':
341 181
                    if (!empty($attribute)) {
342 54
                        $this->setNameAsSortOrder((string) $attribute);
343 181
                    } elseif (!empty($parentStyleElement) && !empty($parentStyleElement->getNameAsSortOrder())) {
344 2
                        $this->setNameAsSortOrder($parentStyleElement->getNameAsSortOrder());
345 181
                    } elseif (!empty($root)) {
346 177
                        $this->setNameAsSortOrder($root->getNameAsSortOrder());
347
                    }
348 181
                    break;
349 181
                case 'sort-separator':
350 181
                    if (!empty($attribute)) {
351 46
                        $this->setSortSeparator((string) $attribute);
352 181
                    } elseif (!empty($parentStyleElement) && !empty($parentStyleElement->getSortSeparator())) {
353 177
                        $this->setSortSeparator($parentStyleElement->getSortSeparator());
354 181
                    } elseif (!empty($root)) {
355 123
                        $this->setSortSeparator($root->getSortSeparator());
356
                    }
357 181
                    break;
358 181
                case 'name-form':
359 181
                    if ($this instanceof Root || $this instanceof StyleElement) {
360 177
                        if (!empty($attribute)) {
361 1
                            $this->setNameForm((string) $attribute);
362 177
                        } elseif (!empty($parentStyleElement)) {
363 177
                            $this->setNameForm($parentStyleElement->getNameForm());
364
                        }
365
                    }
366 181
                    break;
367 181
                case 'form':
368 181
                    if ($this instanceof Name) {
369 111
                        if (!empty($attribute)) {
370 31
                            $this->setForm((string) $attribute);
371 86
                        } elseif (!empty($parentStyleElement) && !empty($parentStyleElement->getNameForm())) {
372 84
                            $this->setForm($parentStyleElement->getNameForm());
373 2
                        } elseif (!empty($root)) {
374
                            $this->setForm($root->getNameForm());
375
                        }
376
                    }
377 181
                    break;
378 181
                case 'name-delimiter':
379 181
                    if ($this instanceof Root || $this instanceof StyleElement) {
380 177
                        if (!empty($attribute)) {
381 1
                            $this->setNameDelimiter((string) $attribute);
382 177
                        } elseif (!empty($parentStyleElement)) {
383 177
                            $this->setNameDelimiter($parentStyleElement->getNameDelimiter());
384
                        }
385
                    } else {
386
                        /* The attributes name-form and name-delimiter correspond to the form and delimiter attributes
387
                           on cs:name. Similarly, names-delimiter corresponds to the delimiter attribute on cs:names. */
388 128
                        if (!empty($attribute)) {
389
                            $this->nameDelimiter = $this->delimiter = (string) $attribute;
0 ignored issues
show
Bug introduced by
The property delimiter is declared private in Seboettg\CiteProc\Rendering\Name\Names and cannot be accessed from this context.
Loading history...
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\Name and cannot be accessed from this context.
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...
390 128
                        } elseif (!empty($parentStyleElement) && !empty($parentStyleElement->getNameDelimiter())) {
391 110
                            $this->nameDelimiter = $this->delimiter = $parentStyleElement->getNameDelimiter();
392 127
                        } elseif (!empty($root)) {
393 123
                            $this->nameDelimiter = $this->delimiter = $root->getNameDelimiter();
394
                        }
395
                    }
396 181
                    break;
397 181
                case 'delimiter':
398 181
                    if ($this instanceof Name) {
399 111
                        if (!empty($attribute)) {
400 50
                            $this->setDelimiter((string) $attribute);
401 65
                        } elseif (!empty($parentStyleElement)) {
402 65
                            $this->setDelimiter($parentStyleElement->getNameDelimiter());
403
                        } elseif (!empty($root)) {
404
                            $this->setDelimiter($root->getNameDelimiter());
405
                        }
406
                    }
407
            }
408
        }
409 181
        $this->attributesInitialized = true;
0 ignored issues
show
Bug introduced by
The property attributesInitialized is declared protected in Seboettg\CiteProc\Rendering\Name\Names 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\Style\StyleElement and cannot be accessed from this context.
Loading history...
410 181
    }
411
412
    /**
413
     * @return string
414
     */
415 177
    public function getAnd()
416
    {
417 177
        return $this->and;
418
    }
419
420
    /**
421
     * @param string $and
422
     */
423 57
    public function setAnd($and)
424
    {
425 57
        $this->and = $and;
426 57
    }
427
428
    /**
429
     * @return string
430
     */
431 177
    public function getDelimiterPrecedesEtAl()
432
    {
433 177
        return $this->delimiterPrecedesEtAl;
434
    }
435
436
    /**
437
     * @param string $delimiterPrecedesEtAl
438
     */
439 177
    public function setDelimiterPrecedesEtAl($delimiterPrecedesEtAl)
440
    {
441 177
        $this->delimiterPrecedesEtAl = $delimiterPrecedesEtAl;
442 177
    }
443
444
    /**
445
     * @return string
446
     */
447 177
    public function getDelimiterPrecedesLast()
448
    {
449 177
        return $this->delimiterPrecedesLast;
450
    }
451
452
    /**
453
     * @param string $delimiterPrecedesLast
454
     */
455 179
    public function setDelimiterPrecedesLast($delimiterPrecedesLast)
456
    {
457 179
        $this->delimiterPrecedesLast = $delimiterPrecedesLast;
458 179
    }
459
460
    /**
461
     * @return int
462
     */
463 176
    public function getEtAlMin()
464
    {
465 176
        return $this->etAlMin;
466
    }
467
468
    /**
469
     * @param int $etAlMin
470
     */
471 177
    public function setEtAlMin($etAlMin)
472
    {
473 177
        $this->etAlMin = $etAlMin;
474 177
    }
475
476
    /**
477
     * @return int
478
     */
479 176
    public function getEtAlUseFirst()
480
    {
481 176
        return $this->etAlUseFirst;
482
    }
483
484
    /**
485
     * @param int $etAlUseFirst
486
     */
487 177
    public function setEtAlUseFirst($etAlUseFirst)
488
    {
489 177
        $this->etAlUseFirst = $etAlUseFirst;
490 177
    }
491
492
    /**
493
     * @return bool
494
     */
495 176
    public function getEtAlUseLast()
496
    {
497 176
        return $this->etAlUseLast;
498
    }
499
500
    /**
501
     * @param bool $etAlUseLast
502
     */
503 177
    public function setEtAlUseLast($etAlUseLast)
504
    {
505 177
        $this->etAlUseLast = $etAlUseLast;
506 177
    }
507
508
    /**
509
     * @return int
510
     */
511 177
    public function getEtAlSubsequentMin()
512
    {
513 177
        return $this->etAlSubsequentMin;
514
    }
515
516
    /**
517
     * @param int $etAlSubsequentMin
518
     */
519 177
    public function setEtAlSubsequentMin($etAlSubsequentMin)
520
    {
521 177
        $this->etAlSubsequentMin = $etAlSubsequentMin;
522 177
    }
523
524
    /**
525
     * @return int
526
     */
527 177
    public function getEtAlSubsequentUseFirst()
528
    {
529 177
        return $this->etAlSubsequentUseFirst;
530
    }
531
532
    /**
533
     * @param int $etAlSubsequentUseFirst
534
     */
535 177
    public function setEtAlSubsequentUseFirst($etAlSubsequentUseFirst)
536
    {
537 177
        $this->etAlSubsequentUseFirst = $etAlSubsequentUseFirst;
538 177
    }
539
540
    /**
541
     * @return bool
542
     */
543 177
    public function getInitialize()
544
    {
545 177
        return $this->initialize;
546
    }
547
548
    /**
549
     * @param bool $initialize
550
     */
551 177
    public function setInitialize($initialize)
552
    {
553 177
        $this->initialize = $initialize;
554 177
    }
555
556
    /**
557
     * @return string
558
     */
559 177
    public function getInitializeWith()
560
    {
561 177
        return $this->initializeWith;
562
    }
563
564
    /**
565
     * @param string $initializeWith
566
     */
567 177
    public function setInitializeWith($initializeWith)
568
    {
569 177
        $this->initializeWith = $initializeWith;
570 177
    }
571
572
    /**
573
     * @return string
574
     */
575 177
    public function getNameAsSortOrder()
576
    {
577 177
        return $this->nameAsSortOrder;
578
    }
579
580
    /**
581
     * @param string $nameAsSortOrder
582
     */
583 179
    public function setNameAsSortOrder($nameAsSortOrder)
584
    {
585 179
        $this->nameAsSortOrder = $nameAsSortOrder;
586 179
    }
587
588
    /**
589
     * @return string
590
     */
591 177
    public function getSortSeparator()
592
    {
593 177
        return $this->sortSeparator;
594
    }
595
596
    /**
597
     * @param string $sortSeparator
598
     */
599 179
    public function setSortSeparator($sortSeparator)
600
    {
601 179
        $this->sortSeparator = $sortSeparator;
602 179
    }
603
604
    /**
605
     * @return mixed
606
     */
607
    public function getForm()
608
    {
609
        return $this->form;
610
    }
611
612
    /**
613
     * @param mixed $form
614
     */
615 109
    public function setForm($form)
616
    {
617 109
        $this->form = $form;
618 109
    }
619
620
    /**
621
     * @return string
622
     */
623 177
    public function getNameForm()
624
    {
625 177
        return $this->nameForm;
626
    }
627
628
    /**
629
     * @param string $nameForm
630
     */
631 177
    public function setNameForm($nameForm)
632
    {
633 177
        $this->nameForm = $nameForm;
634 177
    }
635
636
    /**
637
     * @return string
638
     */
639 177
    public function getNameDelimiter()
640
    {
641 177
        return $this->nameDelimiter;
642
    }
643
644
    /**
645
     * @param string $nameDelimiter
646
     */
647 177
    public function setNameDelimiter($nameDelimiter)
648
    {
649 177
        $this->nameDelimiter = $nameDelimiter;
650 177
    }
651
}
652