Code Duplication    Length = 15-15 lines in 2 locations

api/DataFormatter.php 2 locations

@@ 91-105 (lines=15) @@
88
	 * @param string $extension
89
	 * @return DataFormatter
90
	 */
91
	public static function for_extension($extension) {
92
		$classes = ClassInfo::subclassesFor("DataFormatter");
93
		array_shift($classes);
94
		$sortedClasses = array();
95
		foreach($classes as $class) {
96
			$sortedClasses[$class] = singleton($class)->stat('priority');
97
		}
98
		arsort($sortedClasses);
99
		foreach($sortedClasses as $className => $priority) {
100
			$formatter = new $className();
101
			if(in_array($extension, $formatter->supportedExtensions())) {
102
				return $formatter;
103
			}
104
		}
105
	}
106
107
	/**
108
	 * Get formatter for the first matching extension.
@@ 127-141 (lines=15) @@
124
	 * @param string $mimeType
125
	 * @return DataFormatter
126
	 */
127
	public static function for_mimetype($mimeType) {
128
		$classes = ClassInfo::subclassesFor("DataFormatter");
129
		array_shift($classes);
130
		$sortedClasses = array();
131
		foreach($classes as $class) {
132
			$sortedClasses[$class] = singleton($class)->stat('priority');
133
		}
134
		arsort($sortedClasses);
135
		foreach($sortedClasses as $className => $priority) {
136
			$formatter = new $className();
137
			if(in_array($mimeType, $formatter->supportedMimeTypes())) {
138
				return $formatter;
139
			}
140
		}
141
	}
142
143
	/**
144
	 * Get formatter for the first matching mimetype.