Code Duplication    Length = 14-14 lines in 4 locations

src/Set.php 4 locations

@@ 149-162 (lines=14) @@
146
     *
147
     * @return Set
148
     */
149
    final public function union(self $set)
150
    {
151
        $bit = $this->bit;
152
        foreach (func_get_args() as $arg) {
153
            self::validateType($arg);
154
155
            $bit |= $arg->bit;
156
        }
157
158
        $clone = new static();
159
        $clone->bit = $bit;
160
161
        return $clone;
162
    }
163
164
    /**
165
     * Produce a new set with enum common to both this and other (this & other).
@@ 171-184 (lines=14) @@
168
     *
169
     * @return Set
170
     */
171
    final public function intersect(self $set)
172
    {
173
        $bit = $this->bit;
174
        foreach (func_get_args() as $arg) {
175
            self::validateType($arg);
176
177
            $bit &= $arg->bit;
178
        }
179
180
        $clone = new static();
181
        $clone->bit = $bit;
182
183
        return $clone;
184
    }
185
186
    /**
187
     * Produce a new set with enum in this but not in other (this - other).
@@ 193-206 (lines=14) @@
190
     *
191
     * @return Set
192
     */
193
    final public function diff(self $set)
194
    {
195
        $bit = 0;
196
        foreach (func_get_args() as $arg) {
197
            self::validateType($arg);
198
199
            $bit |= $arg->bit;
200
        }
201
202
        $clone = new static();
203
        $clone->bit = $this->bit & ~$bit;
204
205
        return $clone;
206
    }
207
208
    /**
209
     * Produce a new set with enum in either this and other but not in both (this ^ (other | other)).
@@ 215-228 (lines=14) @@
212
     *
213
     * @return Set
214
     */
215
    final public function symDiff(self $set)
216
    {
217
        $bit = 0;
218
        foreach (func_get_args() as $arg) {
219
            self::validateType($arg);
220
221
            $bit |= $arg->bit;
222
        }
223
224
        $clone = new static();
225
        $clone->bit = $this->bit ^ $bit;
226
227
        return $clone;
228
    }
229
230
    /**
231
     * Get choices for checkbox group.