Code Duplication    Length = 25-27 lines in 2 locations

lib/private/Settings/Manager.php 2 locations

@@ 88-112 (lines=25) @@
85
		}
86
	}
87
88
	private function setupAdminSection($sectionClassName) {
89
		if(!class_exists($sectionClassName)) {
90
			$this->log->debug('Could not find admin section class ' . $sectionClassName);
91
			return;
92
		}
93
		try {
94
			$section = $this->query($sectionClassName);
95
		} catch (QueryException $e) {
96
			// cancel
97
			return;
98
		}
99
100
		if(!$section instanceof ISection) {
101
			$this->log->error(
102
				'Admin section instance must implement \OCP\ISection. Invalid class: {class}',
103
				['class' => $sectionClassName]
104
			);
105
			return;
106
		}
107
		if(!$this->hasAdminSection(get_class($section))) {
108
			$this->addAdminSection($section);
109
		} else {
110
			$this->updateAdminSection($section);
111
		}
112
	}
113
114
	private function addAdminSection(ISection $section) {
115
		$this->add(self::TABLE_ADMIN_SECTIONS, [
@@ 206-232 (lines=27) @@
203
		return (bool) $row;
204
	}
205
206
	private function setupAdminSettings($settingsClassName) {
207
		if(!class_exists($settingsClassName)) {
208
			$this->log->debug('Could not find admin section class ' . $settingsClassName);
209
			return;
210
		}
211
212
		try {
213
			/** @var ISettings $settings */
214
			$settings = $this->query($settingsClassName);
215
		} catch (QueryException $e) {
216
			// cancel
217
			return;
218
		}
219
220
		if(!$settings instanceof ISettings) {
221
			$this->log->error(
222
				'Admin section instance must implement \OCP\ISection. Invalid class: {class}',
223
				['class' => $settingsClassName]
224
			);
225
			return;
226
		}
227
		if(!$this->hasAdminSettings(get_class($settings))) {
228
			$this->addAdminSettings($settings);
229
		} else {
230
			$this->updateAdminSettings($settings);
231
		}
232
	}
233
234
	private function query($className) {
235
		try {