Passed
Pull Request — develop (#121)
by Sebastian
05:37
created

setDelimiterPrecedesLast()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
ccs 0
cts 2
cp 0
crap 2
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 62
    public function isDescendantOfMacro()
216
    {
217 62
        $parent = $this->parent;
218
219 62
        while ($parent != null && $parent instanceof HasParent) {
220 62
            if ($parent instanceof Macro) {
221 38
                return true;
222
            }
223 62
            $parent = $parent->getParent();
224
        }
225 24
        return false;
226
    }
227
228
    /**
229
     * @param SimpleXMLElement $node
230
     */
231 170
    public function initInheritableNameAttributes(SimpleXMLElement $node)
232
    {
233 170
        $context = CiteProc::getContext();
234 170
        $parentStyleElement = null;
235 170
        if ($this instanceof  Name || $this instanceof Names) {
236 117
            if ($context->getMode() === "bibliography") {
237 62
                if ($this->isDescendantOfMacro()) {
238 38
                    $parentStyleElement = $context->getRoot();
239
                } else {
240 62
                    $parentStyleElement = $context->getBibliography();
241
                }
242
            } else {
243 117
                $parentStyleElement = $context->getCitation();
244
            }
245 170
        } elseif ($this instanceof StyleElement) {
246 170
            $parentStyleElement = $context->getRoot();
247
        }
248
249 170
        foreach (self::$attributes as $nameAttribute) {
250 170
            $attribute = $node[$nameAttribute];
251 170
            switch ($nameAttribute) {
252 170
                case 'and':
253 170
                    if (!empty($attribute)) {
254 50
                        $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 170
                    } elseif (!empty($parentStyleElement)) { //inherit from parent style
256 168
                        $this->and = $parentStyleElement->getAnd();
257
                    }
258 170
                    break;
259 170
                case 'delimiter-precedes-et-al':
260 170
                    if (!empty($attribute)) {
261 7
                        $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 170
                    } elseif (!empty($parentStyleElement)) { //inherit from parent style
263 170
                        $this->delimiterPrecedesEtAl = $parentStyleElement->getDelimiterPrecedesEtAl();
264
                    }
265 170
                    break;
266 170
                case 'delimiter-precedes-last':
267 170
                    if (!empty($attribute)) {
268 44
                        $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 170
                    } elseif (!empty($parentStyleElement)) { //inherit from parent style
270 170
                        $this->delimiterPrecedesLast = $parentStyleElement->getDelimiterPrecedesLast();
271
                    }
272 170
                    break;
273 170
                case 'et-al-min':
274 170
                    if (!empty($attribute)) {
275 64
                        $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 170
                    } elseif (!empty($parentStyleElement)) {
277 161
                        $this->etAlMin = $parentStyleElement->getEtAlMin();
278
                    }
279 170
                    break;
280 170
                case 'et-al-use-first':
281 170
                    if (!empty($attribute)) {
282 64
                        $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 170
                    } elseif (!empty($parentStyleElement)) {
284 161
                        $this->etAlUseFirst = $parentStyleElement->getEtAlUseFirst();
285
                    }
286 170
                    break;
287 170
                case 'et-al-subsequent-min':
288 170
                    if (!empty($attribute)) {
289 3
                        $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 170
                    } elseif (!empty($parentStyleElement)) {
291 170
                        $this->etAlSubsequentMin = $parentStyleElement->getEtAlSubsequentMin();
292
                    }
293 170
                    break;
294 170
                case 'et-al-subsequent-use-first':
295 170
                    if (!empty($attribute)) {
296 3
                        $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 170
                    } elseif (!empty($parentStyleElement)) {
298 170
                        $this->etAlSubsequentUseFirst = $parentStyleElement->getEtAlSubsequentUseFirst();
299
                    }
300 170
                    break;
301 170
                case 'et-al-use-last':
302 170
                    if (!empty($attribute)) {
303 19
                        $this->etAlUseLast = boolval((string) $attribute);
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 170
                    } elseif (!empty($parentStyleElement)) {
305 166
                        $this->etAlUseLast = $parentStyleElement->getEtAlUseLast();
306
                    }
307 170
                    break;
308 170
                case 'initialize':
309 170
                    if (!empty($attribute)) {
310 1
                        $this->initialize = boolval((string) $attribute);
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 170
                    } elseif (!empty($parentStyleElement)) {
312 170
                        $this->initialize = $parentStyleElement->getInitialize();
313
                    }
314 170
                    break;
315 170
                case 'initialize-with':
316 170
                    if (!empty($attribute)) {
317 34
                        $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 170
                    } elseif (!empty($parentStyleElement)) {
319 170
                        $this->initializeWith = $parentStyleElement->getInitializeWith();
320
                    }
321 170
                    break;
322 170
                case 'name-as-sort-order':
323 170
                    if (!empty($attribute)) {
324 46
                        $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 170
                    } elseif (!empty($parentStyleElement)) {
326 170
                        $this->nameAsSortOrder = $parentStyleElement->getNameAsSortOrder();
327
                    }
328 170
                    break;
329 170
                case 'sort-separator':
330 170
                    if (!empty($attribute)) {
331 39
                        $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 170
                    } elseif (!empty($parentStyleElement)) {
333 170
                        $this->sortSeparator = $parentStyleElement->getSortSeparator();
334
                    }
335 170
                    break;
336 170
                case 'name-form':
337 170
                    if ($this instanceof Root || $this instanceof StyleElement) {
338 170
                        if (!empty($attribute)) {
339 1
                            $this->setNameForm((string) $attribute);
340 170
                        } elseif (!empty($parentStyleElement)) {
341 170
                            $this->setNameForm($parentStyleElement->getNameForm());
342
                        }
343
                    }
344 170
                    break;
345 170
                case 'form':
346 170
                    if ($this instanceof Name) {
347 103
                        if (!empty($attribute)) {
348 31
                            $this->setForm((string) $attribute);
349 78
                        } elseif (!empty($parentStyleElement)) {
350 78
                            $this->setForm($parentStyleElement->getNameForm());
351
                        }
352
                    }
353 170
                    break;
354 170
                case 'name-delimiter':
355 170
                    if ($this instanceof Root || $this instanceof StyleElement) {
356 170
                        if (!empty($attribute)) {
357 1
                            $this->setNameDelimiter((string) $attribute);
358 170
                        } elseif (!empty($parentStyleElement)) {
359 170
                            $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 117
                        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 117
                        } elseif (!empty($parentStyleElement)) {
367 104
                            $this->nameDelimiter = $this->delimiter = $parentStyleElement->getNameDelimiter();
368
                        }
369
                    }
370 170
                    break;
371 170
                case 'delimiter':
372 170
                    if ($this instanceof Name) {
373 103
                        if (!empty($attribute)) {
374 43
                            $this->setDelimiter((string) $attribute);
375 64
                        } elseif (!empty($parentStyleElement)) {
376 64
                            $this->setDelimiter($parentStyleElement->getNameDelimiter());
377
                        }
378
                    }
379
            }
380
        }
381 170
        $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 170
    }
383
384
    /**
385
     * @return string
386
     */
387 168
    public function getAnd()
388
    {
389 168
        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 170
    public function getDelimiterPrecedesEtAl()
404
    {
405 170
        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 170
    public function getDelimiterPrecedesLast()
420
    {
421 170
        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 161
    public function getEtAlMin()
436
    {
437 161
        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 161
    public function getEtAlUseFirst()
452
    {
453 161
        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 166
    public function getEtAlUseLast()
468
    {
469 166
        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 170
    public function getEtAlSubsequentMin()
484
    {
485 170
        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 170
    public function getEtAlSubsequentUseFirst()
500
    {
501 170
        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 170
    public function getInitialize()
516
    {
517 170
        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 170
    public function getInitializeWith()
532
    {
533 170
        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 170
    public function getNameAsSortOrder()
548
    {
549 170
        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 170
    public function getSortSeparator()
564
    {
565 170
        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 103
    public function setForm($form)
588
    {
589 103
        $this->form = $form;
590 103
    }
591
592
    /**
593
     * @return string
594
     */
595 170
    public function getNameForm()
596
    {
597 170
        return $this->nameForm;
598
    }
599
600
    /**
601
     * @param string $nameForm
602
     */
603 170
    public function setNameForm($nameForm)
604
    {
605 170
        $this->nameForm = $nameForm;
606 170
    }
607
608
    /**
609
     * @return string
610
     */
611 170
    public function getNameDelimiter()
612
    {
613 170
        return $this->nameDelimiter;
614
    }
615
616
    /**
617
     * @param string $nameDelimiter
618
     */
619 170
    public function setNameDelimiter($nameDelimiter)
620
    {
621 170
        $this->nameDelimiter = $nameDelimiter;
622 170
    }
623
}
624