Passed
Push — hans/its-the-same ( 0a6987...73cfcc )
by Simon
04:13
created

GetSetSchemaFactoryTrait::getTemplate()   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
 * Trait GetSetSchemaFactoryTrait|Firesphere\SolrSearch\Traits\GetSetSchemaFactoryTrait Getters and setters
4
 * for {@link \Firesphere\SolrSearch\Factories\SchemaFactory}
5
 *
6
 * @package Firesphere\SolrSearch\Traits
7
 * @author Simon `Firesphere` Erkelens; Marco `Sheepy` Hermo
8
 * @copyright Copyright (c) 2018 - now() Firesphere & Sheepy
9
 */
10
11
namespace Firesphere\SolrSearch\Traits;
12
13
use Firesphere\SolrSearch\Factories\SchemaFactory;
14
use Firesphere\SolrSearch\Indexes\BaseIndex;
15
use Firesphere\SolrSearch\Services\SolrCoreService;
16
17
/**
18
 * Trait GetSetSchemaFactoryTrait
19
 *
20
 * @package Firesphere\SolrSearch\Traits
21
 */
22
trait GetSetSchemaFactoryTrait
23
{
24
    /**
25
     * ABSOLUTE Path to template
26
     *
27
     * @var string
28
     */
29
    protected $template;
30
    /**
31
     * Store the value in Solr
32
     *
33
     * @var bool
34
     */
35
    protected $store = false;
36
    /**
37
     * Index to generate the schema for
38
     *
39
     * @var BaseIndex
40
     */
41
    protected $index;
42
    /**
43
     * ABSOLUTE Path to types.ss template
44
     *
45
     * @var string
46
     */
47
    protected $typesTemplate;
48
49
    /**
50
     * Set the store value
51
     *
52
     * @param bool $store
53
     */
54 79
    public function setStore(bool $store): void
55
    {
56 79
        $this->store = $store;
57 79
    }
58
59
    /**
60
     * Get the Index that's being used
61
     *
62
     * @return BaseIndex
63
     */
64 1
    public function getIndex()
65
    {
66 1
        return $this->index;
67
    }
68
69
    /**
70
     * Set the index that's being used and add the introspection for it
71
     *
72
     * @param BaseIndex $index
73
     * @return SchemaFactory
74
     */
75 79
    public function setIndex($index): self
76
    {
77 79
        $this->index = $index;
78
        // Add the index to the introspection as well, there's no need for a separate call here
79
        // We're loading this core, why would we want the introspection from a different index?
80 79
        $this->fieldResolver->setIndex($index);
81
82 79
        return $this;
83
    }
84
85
    /**
86
     * Get the name of the index being used
87
     *
88
     * @return string
89
     */
90 36
    public function getIndexName(): string
91
    {
92 36
        return $this->index->getIndexName();
93
    }
94
95
    /**
96
     * Get the default field to generate df components for
97
     *
98
     * @return string|array
99
     */
100 36
    public function getDefaultField()
101
    {
102 36
        return $this->index->getDefaultField();
103
    }
104
105
    /**
106
     * Get the Identifier Field for Solr
107
     *
108
     * @return string
109
     */
110 35
    public function getIDField(): string
111
    {
112 35
        return SolrCoreService::ID_FIELD;
113
    }
114
115
    /**
116
     * Get the Identifier Field for Solr
117
     *
118
     * @return string
119
     */
120 35
    public function getClassID(): string
121
    {
122 35
        return SolrCoreService::CLASS_ID_FIELD;
123
    }
124
125
    /**
126
     * Get the types template if defined
127
     *
128
     * @return string
129
     */
130 35
    public function getTypesTemplate()
131
    {
132 35
        return $this->typesTemplate;
133
    }
134
135
    /**
136
     * Set custom types template
137
     *
138
     * @param string $typesTemplate
139
     * @return SchemaFactory
140
     */
141 35
    public function setTypesTemplate($typesTemplate): self
142
    {
143 35
        $this->typesTemplate = $typesTemplate;
144
145 35
        return $this;
146
    }
147
148
    /**
149
     * Get the base template for the schema xml
150
     *
151
     * @return string
152
     */
153 35
    public function getTemplate()
154
    {
155 35
        return $this->template;
156
    }
157
158
    /**
159
     * Set a custom template for schema xml
160
     *
161
     * @param string $template
162
     * @return SchemaFactory
163
     */
164 35
    public function setTemplate($template): self
165
    {
166 35
        $this->template = $template;
167
168 35
        return $this;
169
    }
170
}
171