Code Duplication    Length = 25-27 lines in 2 locations

lib/private/Settings/Manager.php 2 locations

@@ 149-173 (lines=25) @@
146
	/**
147
	 * @param string $sectionClassName
148
	 */
149
	private function setupAdminSection($sectionClassName) {
150
		if(!class_exists($sectionClassName)) {
151
			$this->log->debug('Could not find admin section class ' . $sectionClassName);
152
			return;
153
		}
154
		try {
155
			$section = $this->query($sectionClassName);
156
		} catch (QueryException $e) {
157
			// cancel
158
			return;
159
		}
160
161
		if(!$section instanceof ISection) {
162
			$this->log->error(
163
				'Admin section instance must implement \OCP\ISection. Invalid class: {class}',
164
				['class' => $sectionClassName]
165
			);
166
			return;
167
		}
168
		if(!$this->hasAdminSection(get_class($section))) {
169
			$this->addAdminSection($section);
170
		} else {
171
			$this->updateAdminSection($section);
172
		}
173
	}
174
175
	private function addAdminSection(ISection $section) {
176
		$this->add(self::TABLE_ADMIN_SECTIONS, [
@@ 289-315 (lines=27) @@
286
		$query->execute();
287
	}
288
289
	private function setupAdminSettings($settingsClassName) {
290
		if(!class_exists($settingsClassName)) {
291
			$this->log->debug('Could not find admin section class ' . $settingsClassName);
292
			return;
293
		}
294
295
		try {
296
			/** @var ISettings $settings */
297
			$settings = $this->query($settingsClassName);
298
		} catch (QueryException $e) {
299
			// cancel
300
			return;
301
		}
302
303
		if(!$settings instanceof ISettings) {
304
			$this->log->error(
305
				'Admin section instance must implement \OCP\Settings\ISection. Invalid class: {class}',
306
				['class' => $settingsClassName]
307
			);
308
			return;
309
		}
310
		if(!$this->hasAdminSettings(get_class($settings))) {
311
			$this->addAdminSettings($settings);
312
		} else {
313
			$this->updateAdminSettings($settings);
314
		}
315
	}
316
317
	private function query($className) {
318
		try {