Passed
Push — master ( 4a4262...32927f )
by Roeland
24:24 queued 11:41
created
lib/private/DB/QueryBuilder/CompositeExpression.php 1 patch
Indentation   +56 added lines, -56 removed lines patch added patch discarded remove patch
@@ -25,68 +25,68 @@
 block discarded – undo
25 25
 use OCP\DB\QueryBuilder\ICompositeExpression;
26 26
 
27 27
 class CompositeExpression implements ICompositeExpression, \Countable {
28
-	/** @var \Doctrine\DBAL\Query\Expression\CompositeExpression */
29
-	protected $compositeExpression;
28
+    /** @var \Doctrine\DBAL\Query\Expression\CompositeExpression */
29
+    protected $compositeExpression;
30 30
 
31
-	/**
32
-	 * Constructor.
33
-	 *
34
-	 * @param \Doctrine\DBAL\Query\Expression\CompositeExpression $compositeExpression
35
-	 */
36
-	public function __construct(\Doctrine\DBAL\Query\Expression\CompositeExpression $compositeExpression) {
37
-		$this->compositeExpression = $compositeExpression;
38
-	}
31
+    /**
32
+     * Constructor.
33
+     *
34
+     * @param \Doctrine\DBAL\Query\Expression\CompositeExpression $compositeExpression
35
+     */
36
+    public function __construct(\Doctrine\DBAL\Query\Expression\CompositeExpression $compositeExpression) {
37
+        $this->compositeExpression = $compositeExpression;
38
+    }
39 39
 
40
-	/**
41
-	 * Adds multiple parts to composite expression.
42
-	 *
43
-	 * @param array $parts
44
-	 *
45
-	 * @return \OCP\DB\QueryBuilder\ICompositeExpression
46
-	 */
47
-	public function addMultiple(array $parts = []) {
48
-		$this->compositeExpression->addMultiple($parts);
40
+    /**
41
+     * Adds multiple parts to composite expression.
42
+     *
43
+     * @param array $parts
44
+     *
45
+     * @return \OCP\DB\QueryBuilder\ICompositeExpression
46
+     */
47
+    public function addMultiple(array $parts = []) {
48
+        $this->compositeExpression->addMultiple($parts);
49 49
 
50
-		return $this;
51
-	}
50
+        return $this;
51
+    }
52 52
 
53
-	/**
54
-	 * Adds an expression to composite expression.
55
-	 *
56
-	 * @param mixed $part
57
-	 *
58
-	 * @return \OCP\DB\QueryBuilder\ICompositeExpression
59
-	 */
60
-	public function add($part) {
61
-		$this->compositeExpression->add($part);
53
+    /**
54
+     * Adds an expression to composite expression.
55
+     *
56
+     * @param mixed $part
57
+     *
58
+     * @return \OCP\DB\QueryBuilder\ICompositeExpression
59
+     */
60
+    public function add($part) {
61
+        $this->compositeExpression->add($part);
62 62
 
63
-		return $this;
64
-	}
63
+        return $this;
64
+    }
65 65
 
66
-	/**
67
-	 * Retrieves the amount of expressions on composite expression.
68
-	 *
69
-	 * @return integer
70
-	 */
71
-	public function count() {
72
-		return $this->compositeExpression->count();
73
-	}
66
+    /**
67
+     * Retrieves the amount of expressions on composite expression.
68
+     *
69
+     * @return integer
70
+     */
71
+    public function count() {
72
+        return $this->compositeExpression->count();
73
+    }
74 74
 
75
-	/**
76
-	 * Returns the type of this composite expression (AND/OR).
77
-	 *
78
-	 * @return string
79
-	 */
80
-	public function getType() {
81
-		return $this->compositeExpression->getType();
82
-	}
75
+    /**
76
+     * Returns the type of this composite expression (AND/OR).
77
+     *
78
+     * @return string
79
+     */
80
+    public function getType() {
81
+        return $this->compositeExpression->getType();
82
+    }
83 83
 
84
-	/**
85
-	 * Retrieves the string representation of this composite expression.
86
-	 *
87
-	 * @return string
88
-	 */
89
-	public function __toString() {
90
-		return (string) $this->compositeExpression;
91
-	}
84
+    /**
85
+     * Retrieves the string representation of this composite expression.
86
+     *
87
+     * @return string
88
+     */
89
+    public function __toString() {
90
+        return (string) $this->compositeExpression;
91
+    }
92 92
 }
Please login to merge, or discard this patch.
lib/private/DB/QueryBuilder/Literal.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -25,17 +25,17 @@
 block discarded – undo
25 25
 use OCP\DB\QueryBuilder\ILiteral;
26 26
 
27 27
 class Literal implements ILiteral {
28
-	/** @var mixed */
29
-	protected $literal;
28
+    /** @var mixed */
29
+    protected $literal;
30 30
 
31
-	public function __construct($literal) {
32
-		$this->literal = $literal;
33
-	}
31
+    public function __construct($literal) {
32
+        $this->literal = $literal;
33
+    }
34 34
 
35
-	/**
36
-	 * @return string
37
-	 */
38
-	public function __toString() {
39
-		return (string) $this->literal;
40
-	}
35
+    /**
36
+     * @return string
37
+     */
38
+    public function __toString() {
39
+        return (string) $this->literal;
40
+    }
41 41
 }
Please login to merge, or discard this patch.
lib/private/DB/MySQLMigrator.php 1 patch
Indentation   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -29,47 +29,47 @@
 block discarded – undo
29 29
 use Doctrine\DBAL\Schema\Table;
30 30
 
31 31
 class MySQLMigrator extends Migrator {
32
-	/**
33
-	 * @param Schema $targetSchema
34
-	 * @param \Doctrine\DBAL\Connection $connection
35
-	 * @return \Doctrine\DBAL\Schema\SchemaDiff
36
-	 */
37
-	protected function getDiff(Schema $targetSchema, \Doctrine\DBAL\Connection $connection) {
38
-		$platform = $connection->getDatabasePlatform();
39
-		$platform->registerDoctrineTypeMapping('enum', 'string');
40
-		$platform->registerDoctrineTypeMapping('bit', 'string');
32
+    /**
33
+     * @param Schema $targetSchema
34
+     * @param \Doctrine\DBAL\Connection $connection
35
+     * @return \Doctrine\DBAL\Schema\SchemaDiff
36
+     */
37
+    protected function getDiff(Schema $targetSchema, \Doctrine\DBAL\Connection $connection) {
38
+        $platform = $connection->getDatabasePlatform();
39
+        $platform->registerDoctrineTypeMapping('enum', 'string');
40
+        $platform->registerDoctrineTypeMapping('bit', 'string');
41 41
 
42
-		$schemaDiff = parent::getDiff($targetSchema, $connection);
42
+        $schemaDiff = parent::getDiff($targetSchema, $connection);
43 43
 
44
-		// identifiers need to be quoted for mysql
45
-		foreach ($schemaDiff->changedTables as $tableDiff) {
46
-			$tableDiff->name = $this->connection->quoteIdentifier($tableDiff->name);
47
-			foreach ($tableDiff->changedColumns as $column) {
48
-				$column->oldColumnName = $this->connection->quoteIdentifier($column->oldColumnName);
49
-			}
50
-		}
44
+        // identifiers need to be quoted for mysql
45
+        foreach ($schemaDiff->changedTables as $tableDiff) {
46
+            $tableDiff->name = $this->connection->quoteIdentifier($tableDiff->name);
47
+            foreach ($tableDiff->changedColumns as $column) {
48
+                $column->oldColumnName = $this->connection->quoteIdentifier($column->oldColumnName);
49
+            }
50
+        }
51 51
 
52
-		return $schemaDiff;
53
-	}
52
+        return $schemaDiff;
53
+    }
54 54
 	
55
-	/**
56
-	 * Speed up migration test by disabling autocommit and unique indexes check
57
-	 *
58
-	 * @param \Doctrine\DBAL\Schema\Table $table
59
-	 * @throws \OC\DB\MigrationException
60
-	 */
61
-	protected function checkTableMigrate(Table $table) {
62
-		$this->connection->exec('SET autocommit=0');
63
-		$this->connection->exec('SET unique_checks=0');
55
+    /**
56
+     * Speed up migration test by disabling autocommit and unique indexes check
57
+     *
58
+     * @param \Doctrine\DBAL\Schema\Table $table
59
+     * @throws \OC\DB\MigrationException
60
+     */
61
+    protected function checkTableMigrate(Table $table) {
62
+        $this->connection->exec('SET autocommit=0');
63
+        $this->connection->exec('SET unique_checks=0');
64 64
 
65
-		try {
66
-			parent::checkTableMigrate($table);
67
-		} catch (\Exception $e) {
68
-			$this->connection->exec('SET unique_checks=1');
69
-			$this->connection->exec('SET autocommit=1');
70
-			throw new MigrationException($table->getName(), $e->getMessage());
71
-		}
72
-		$this->connection->exec('SET unique_checks=1');
73
-		$this->connection->exec('SET autocommit=1');
74
-	}
65
+        try {
66
+            parent::checkTableMigrate($table);
67
+        } catch (\Exception $e) {
68
+            $this->connection->exec('SET unique_checks=1');
69
+            $this->connection->exec('SET autocommit=1');
70
+            throw new MigrationException($table->getName(), $e->getMessage());
71
+        }
72
+        $this->connection->exec('SET unique_checks=1');
73
+        $this->connection->exec('SET autocommit=1');
74
+    }
75 75
 }
Please login to merge, or discard this patch.
lib/private/DB/PgSqlTools.php 2 patches
Indentation   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -32,41 +32,41 @@
 block discarded – undo
32 32
  */
33 33
 class PgSqlTools {
34 34
 
35
-	/** @var \OCP\IConfig */
36
-	private $config;
35
+    /** @var \OCP\IConfig */
36
+    private $config;
37 37
 
38
-	/**
39
-	 * @param \OCP\IConfig $config
40
-	 */
41
-	public function __construct(IConfig $config) {
42
-		$this->config = $config;
43
-	}
38
+    /**
39
+     * @param \OCP\IConfig $config
40
+     */
41
+    public function __construct(IConfig $config) {
42
+        $this->config = $config;
43
+    }
44 44
 
45
-	/**
46
-	 * @brief Resynchronizes all sequences of a database after using INSERTs
47
-	 *        without leaving out the auto-incremented column.
48
-	 * @param \OC\DB\Connection $conn
49
-	 * @return null
50
-	 */
51
-	public function resynchronizeDatabaseSequences(Connection $conn) {
52
-		$filterExpression = '/^' . preg_quote($this->config->getSystemValue('dbtableprefix', 'oc_')) . '/';
53
-		$databaseName = $conn->getDatabase();
54
-		$conn->getConfiguration()->setFilterSchemaAssetsExpression($filterExpression);
45
+    /**
46
+     * @brief Resynchronizes all sequences of a database after using INSERTs
47
+     *        without leaving out the auto-incremented column.
48
+     * @param \OC\DB\Connection $conn
49
+     * @return null
50
+     */
51
+    public function resynchronizeDatabaseSequences(Connection $conn) {
52
+        $filterExpression = '/^' . preg_quote($this->config->getSystemValue('dbtableprefix', 'oc_')) . '/';
53
+        $databaseName = $conn->getDatabase();
54
+        $conn->getConfiguration()->setFilterSchemaAssetsExpression($filterExpression);
55 55
 
56
-		foreach ($conn->getSchemaManager()->listSequences() as $sequence) {
57
-			$sequenceName = $sequence->getName();
58
-			$sqlInfo = 'SELECT table_schema, table_name, column_name
56
+        foreach ($conn->getSchemaManager()->listSequences() as $sequence) {
57
+            $sequenceName = $sequence->getName();
58
+            $sqlInfo = 'SELECT table_schema, table_name, column_name
59 59
 				FROM information_schema.columns
60 60
 				WHERE column_default = ? AND table_catalog = ?';
61
-			$sequenceInfo = $conn->fetchAssoc($sqlInfo, [
62
-				"nextval('$sequenceName'::regclass)",
63
-				$databaseName
64
-			]);
65
-			$tableName = $sequenceInfo['table_name'];
66
-			$columnName = $sequenceInfo['column_name'];
67
-			$sqlMaxId = "SELECT MAX($columnName) FROM $tableName";
68
-			$sqlSetval = "SELECT setval('$sequenceName', ($sqlMaxId))";
69
-			$conn->executeQuery($sqlSetval);
70
-		}
71
-	}
61
+            $sequenceInfo = $conn->fetchAssoc($sqlInfo, [
62
+                "nextval('$sequenceName'::regclass)",
63
+                $databaseName
64
+            ]);
65
+            $tableName = $sequenceInfo['table_name'];
66
+            $columnName = $sequenceInfo['column_name'];
67
+            $sqlMaxId = "SELECT MAX($columnName) FROM $tableName";
68
+            $sqlSetval = "SELECT setval('$sequenceName', ($sqlMaxId))";
69
+            $conn->executeQuery($sqlSetval);
70
+        }
71
+    }
72 72
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -49,7 +49,7 @@
 block discarded – undo
49 49
 	 * @return null
50 50
 	 */
51 51
 	public function resynchronizeDatabaseSequences(Connection $conn) {
52
-		$filterExpression = '/^' . preg_quote($this->config->getSystemValue('dbtableprefix', 'oc_')) . '/';
52
+		$filterExpression = '/^'.preg_quote($this->config->getSystemValue('dbtableprefix', 'oc_')).'/';
53 53
 		$databaseName = $conn->getDatabase();
54 54
 		$conn->getConfiguration()->setFilterSchemaAssetsExpression($filterExpression);
55 55
 
Please login to merge, or discard this patch.
lib/private/DB/MDB2SchemaReader.php 2 patches
Indentation   +292 added lines, -292 removed lines patch added patch discarded remove patch
@@ -37,312 +37,312 @@
 block discarded – undo
37 37
 
38 38
 class MDB2SchemaReader {
39 39
 
40
-	/**
41
-	 * @var string $DBTABLEPREFIX
42
-	 */
43
-	protected $DBTABLEPREFIX;
40
+    /**
41
+     * @var string $DBTABLEPREFIX
42
+     */
43
+    protected $DBTABLEPREFIX;
44 44
 
45
-	/**
46
-	 * @var \Doctrine\DBAL\Platforms\AbstractPlatform $platform
47
-	 */
48
-	protected $platform;
45
+    /**
46
+     * @var \Doctrine\DBAL\Platforms\AbstractPlatform $platform
47
+     */
48
+    protected $platform;
49 49
 
50
-	/** @var IConfig */
51
-	protected $config;
50
+    /** @var IConfig */
51
+    protected $config;
52 52
 
53
-	/**
54
-	 * @param \OCP\IConfig $config
55
-	 * @param \Doctrine\DBAL\Platforms\AbstractPlatform $platform
56
-	 */
57
-	public function __construct(IConfig $config, AbstractPlatform $platform) {
58
-		$this->platform = $platform;
59
-		$this->config = $config;
60
-		$this->DBTABLEPREFIX = $config->getSystemValue('dbtableprefix', 'oc_');
61
-	}
53
+    /**
54
+     * @param \OCP\IConfig $config
55
+     * @param \Doctrine\DBAL\Platforms\AbstractPlatform $platform
56
+     */
57
+    public function __construct(IConfig $config, AbstractPlatform $platform) {
58
+        $this->platform = $platform;
59
+        $this->config = $config;
60
+        $this->DBTABLEPREFIX = $config->getSystemValue('dbtableprefix', 'oc_');
61
+    }
62 62
 
63
-	/**
64
-	 * @param string $file
65
-	 * @param Schema $schema
66
-	 * @return Schema
67
-	 * @throws \DomainException
68
-	 */
69
-	public function loadSchemaFromFile($file, Schema $schema) {
70
-		$loadEntities = libxml_disable_entity_loader(false);
71
-		$xml = simplexml_load_file($file);
72
-		libxml_disable_entity_loader($loadEntities);
73
-		foreach ($xml->children() as $child) {
74
-			/**
75
-			 * @var \SimpleXMLElement $child
76
-			 */
77
-			switch ($child->getName()) {
78
-				case 'name':
79
-				case 'create':
80
-				case 'overwrite':
81
-				case 'charset':
82
-					break;
83
-				case 'table':
84
-					$this->loadTable($schema, $child);
85
-					break;
86
-				default:
87
-					throw new \DomainException('Unknown element: ' . $child->getName());
63
+    /**
64
+     * @param string $file
65
+     * @param Schema $schema
66
+     * @return Schema
67
+     * @throws \DomainException
68
+     */
69
+    public function loadSchemaFromFile($file, Schema $schema) {
70
+        $loadEntities = libxml_disable_entity_loader(false);
71
+        $xml = simplexml_load_file($file);
72
+        libxml_disable_entity_loader($loadEntities);
73
+        foreach ($xml->children() as $child) {
74
+            /**
75
+             * @var \SimpleXMLElement $child
76
+             */
77
+            switch ($child->getName()) {
78
+                case 'name':
79
+                case 'create':
80
+                case 'overwrite':
81
+                case 'charset':
82
+                    break;
83
+                case 'table':
84
+                    $this->loadTable($schema, $child);
85
+                    break;
86
+                default:
87
+                    throw new \DomainException('Unknown element: ' . $child->getName());
88 88
 
89
-			}
90
-		}
91
-		return $schema;
92
-	}
89
+            }
90
+        }
91
+        return $schema;
92
+    }
93 93
 
94
-	/**
95
-	 * @param \Doctrine\DBAL\Schema\Schema $schema
96
-	 * @param \SimpleXMLElement $xml
97
-	 * @throws \DomainException
98
-	 */
99
-	private function loadTable($schema, $xml) {
100
-		$table = null;
101
-		foreach ($xml->children() as $child) {
102
-			/**
103
-			 * @var \SimpleXMLElement $child
104
-			 */
105
-			switch ($child->getName()) {
106
-				case 'name':
107
-					$name = (string)$child;
108
-					$name = str_replace('*dbprefix*', $this->DBTABLEPREFIX, $name);
109
-					$name = $this->platform->quoteIdentifier($name);
110
-					$table = $schema->createTable($name);
111
-					break;
112
-				case 'create':
113
-				case 'overwrite':
114
-				case 'charset':
115
-					break;
116
-				case 'declaration':
117
-					if (is_null($table)) {
118
-						throw new \DomainException('Table declaration before table name');
119
-					}
120
-					$this->loadDeclaration($table, $child);
121
-					break;
122
-				default:
123
-					throw new \DomainException('Unknown element: ' . $child->getName());
94
+    /**
95
+     * @param \Doctrine\DBAL\Schema\Schema $schema
96
+     * @param \SimpleXMLElement $xml
97
+     * @throws \DomainException
98
+     */
99
+    private function loadTable($schema, $xml) {
100
+        $table = null;
101
+        foreach ($xml->children() as $child) {
102
+            /**
103
+             * @var \SimpleXMLElement $child
104
+             */
105
+            switch ($child->getName()) {
106
+                case 'name':
107
+                    $name = (string)$child;
108
+                    $name = str_replace('*dbprefix*', $this->DBTABLEPREFIX, $name);
109
+                    $name = $this->platform->quoteIdentifier($name);
110
+                    $table = $schema->createTable($name);
111
+                    break;
112
+                case 'create':
113
+                case 'overwrite':
114
+                case 'charset':
115
+                    break;
116
+                case 'declaration':
117
+                    if (is_null($table)) {
118
+                        throw new \DomainException('Table declaration before table name');
119
+                    }
120
+                    $this->loadDeclaration($table, $child);
121
+                    break;
122
+                default:
123
+                    throw new \DomainException('Unknown element: ' . $child->getName());
124 124
 
125
-			}
126
-		}
127
-	}
125
+            }
126
+        }
127
+    }
128 128
 
129
-	/**
130
-	 * @param \Doctrine\DBAL\Schema\Table $table
131
-	 * @param \SimpleXMLElement $xml
132
-	 * @throws \DomainException
133
-	 */
134
-	private function loadDeclaration($table, $xml) {
135
-		foreach ($xml->children() as $child) {
136
-			/**
137
-			 * @var \SimpleXMLElement $child
138
-			 */
139
-			switch ($child->getName()) {
140
-				case 'field':
141
-					$this->loadField($table, $child);
142
-					break;
143
-				case 'index':
144
-					$this->loadIndex($table, $child);
145
-					break;
146
-				default:
147
-					throw new \DomainException('Unknown element: ' . $child->getName());
129
+    /**
130
+     * @param \Doctrine\DBAL\Schema\Table $table
131
+     * @param \SimpleXMLElement $xml
132
+     * @throws \DomainException
133
+     */
134
+    private function loadDeclaration($table, $xml) {
135
+        foreach ($xml->children() as $child) {
136
+            /**
137
+             * @var \SimpleXMLElement $child
138
+             */
139
+            switch ($child->getName()) {
140
+                case 'field':
141
+                    $this->loadField($table, $child);
142
+                    break;
143
+                case 'index':
144
+                    $this->loadIndex($table, $child);
145
+                    break;
146
+                default:
147
+                    throw new \DomainException('Unknown element: ' . $child->getName());
148 148
 
149
-			}
150
-		}
151
-	}
149
+            }
150
+        }
151
+    }
152 152
 
153
-	/**
154
-	 * @param \Doctrine\DBAL\Schema\Table $table
155
-	 * @param \SimpleXMLElement $xml
156
-	 * @throws \DomainException
157
-	 */
158
-	private function loadField($table, $xml) {
159
-		$options = [ 'notnull' => false ];
160
-		foreach ($xml->children() as $child) {
161
-			/**
162
-			 * @var \SimpleXMLElement $child
163
-			 */
164
-			switch ($child->getName()) {
165
-				case 'name':
166
-					$name = (string)$child;
167
-					$name = $this->platform->quoteIdentifier($name);
168
-					break;
169
-				case 'type':
170
-					$type = (string)$child;
171
-					switch ($type) {
172
-						case 'text':
173
-							$type = 'string';
174
-							break;
175
-						case 'clob':
176
-							$type = 'text';
177
-							break;
178
-						case 'timestamp':
179
-							$type = 'datetime';
180
-							break;
181
-						case 'numeric':
182
-							$type = 'decimal';
183
-							break;
184
-					}
185
-					break;
186
-				case 'length':
187
-					$length = (string)$child;
188
-					$options['length'] = $length;
189
-					break;
190
-				case 'unsigned':
191
-					$unsigned = $this->asBool($child);
192
-					$options['unsigned'] = $unsigned;
193
-					break;
194
-				case 'notnull':
195
-					$notnull = $this->asBool($child);
196
-					$options['notnull'] = $notnull;
197
-					break;
198
-				case 'autoincrement':
199
-					$autoincrement = $this->asBool($child);
200
-					$options['autoincrement'] = $autoincrement;
201
-					break;
202
-				case 'default':
203
-					$default = (string)$child;
204
-					$options['default'] = $default;
205
-					break;
206
-				case 'comments':
207
-					$comment = (string)$child;
208
-					$options['comment'] = $comment;
209
-					break;
210
-				case 'primary':
211
-					$primary = $this->asBool($child);
212
-					$options['primary'] = $primary;
213
-					break;
214
-				case 'precision':
215
-					$precision = (string)$child;
216
-					$options['precision'] = $precision;
217
-					break;
218
-				case 'scale':
219
-					$scale = (string)$child;
220
-					$options['scale'] = $scale;
221
-					break;
222
-				default:
223
-					throw new \DomainException('Unknown element: ' . $child->getName());
153
+    /**
154
+     * @param \Doctrine\DBAL\Schema\Table $table
155
+     * @param \SimpleXMLElement $xml
156
+     * @throws \DomainException
157
+     */
158
+    private function loadField($table, $xml) {
159
+        $options = [ 'notnull' => false ];
160
+        foreach ($xml->children() as $child) {
161
+            /**
162
+             * @var \SimpleXMLElement $child
163
+             */
164
+            switch ($child->getName()) {
165
+                case 'name':
166
+                    $name = (string)$child;
167
+                    $name = $this->platform->quoteIdentifier($name);
168
+                    break;
169
+                case 'type':
170
+                    $type = (string)$child;
171
+                    switch ($type) {
172
+                        case 'text':
173
+                            $type = 'string';
174
+                            break;
175
+                        case 'clob':
176
+                            $type = 'text';
177
+                            break;
178
+                        case 'timestamp':
179
+                            $type = 'datetime';
180
+                            break;
181
+                        case 'numeric':
182
+                            $type = 'decimal';
183
+                            break;
184
+                    }
185
+                    break;
186
+                case 'length':
187
+                    $length = (string)$child;
188
+                    $options['length'] = $length;
189
+                    break;
190
+                case 'unsigned':
191
+                    $unsigned = $this->asBool($child);
192
+                    $options['unsigned'] = $unsigned;
193
+                    break;
194
+                case 'notnull':
195
+                    $notnull = $this->asBool($child);
196
+                    $options['notnull'] = $notnull;
197
+                    break;
198
+                case 'autoincrement':
199
+                    $autoincrement = $this->asBool($child);
200
+                    $options['autoincrement'] = $autoincrement;
201
+                    break;
202
+                case 'default':
203
+                    $default = (string)$child;
204
+                    $options['default'] = $default;
205
+                    break;
206
+                case 'comments':
207
+                    $comment = (string)$child;
208
+                    $options['comment'] = $comment;
209
+                    break;
210
+                case 'primary':
211
+                    $primary = $this->asBool($child);
212
+                    $options['primary'] = $primary;
213
+                    break;
214
+                case 'precision':
215
+                    $precision = (string)$child;
216
+                    $options['precision'] = $precision;
217
+                    break;
218
+                case 'scale':
219
+                    $scale = (string)$child;
220
+                    $options['scale'] = $scale;
221
+                    break;
222
+                default:
223
+                    throw new \DomainException('Unknown element: ' . $child->getName());
224 224
 
225
-			}
226
-		}
227
-		if (isset($name) && isset($type)) {
228
-			if (isset($options['default']) && empty($options['default'])) {
229
-				if (empty($options['notnull']) || !$options['notnull']) {
230
-					unset($options['default']);
231
-					$options['notnull'] = false;
232
-				} else {
233
-					$options['default'] = '';
234
-				}
235
-				if ($type == 'integer' || $type == 'decimal') {
236
-					$options['default'] = 0;
237
-				} elseif ($type == 'boolean') {
238
-					$options['default'] = false;
239
-				}
240
-				if (!empty($options['autoincrement']) && $options['autoincrement']) {
241
-					unset($options['default']);
242
-				}
243
-			}
244
-			if ($type === 'integer' && isset($options['default'])) {
245
-				$options['default'] = (int)$options['default'];
246
-			}
247
-			if ($type === 'integer' && isset($options['length'])) {
248
-				$length = $options['length'];
249
-				if ($length < 4) {
250
-					$type = 'smallint';
251
-				} elseif ($length > 4) {
252
-					$type = 'bigint';
253
-				}
254
-			}
255
-			if ($type === 'boolean' && isset($options['default'])) {
256
-				$options['default'] = $this->asBool($options['default']);
257
-			}
258
-			if (!empty($options['autoincrement'])
259
-				&& !empty($options['notnull'])
260
-			) {
261
-				$options['primary'] = true;
262
-			}
225
+            }
226
+        }
227
+        if (isset($name) && isset($type)) {
228
+            if (isset($options['default']) && empty($options['default'])) {
229
+                if (empty($options['notnull']) || !$options['notnull']) {
230
+                    unset($options['default']);
231
+                    $options['notnull'] = false;
232
+                } else {
233
+                    $options['default'] = '';
234
+                }
235
+                if ($type == 'integer' || $type == 'decimal') {
236
+                    $options['default'] = 0;
237
+                } elseif ($type == 'boolean') {
238
+                    $options['default'] = false;
239
+                }
240
+                if (!empty($options['autoincrement']) && $options['autoincrement']) {
241
+                    unset($options['default']);
242
+                }
243
+            }
244
+            if ($type === 'integer' && isset($options['default'])) {
245
+                $options['default'] = (int)$options['default'];
246
+            }
247
+            if ($type === 'integer' && isset($options['length'])) {
248
+                $length = $options['length'];
249
+                if ($length < 4) {
250
+                    $type = 'smallint';
251
+                } elseif ($length > 4) {
252
+                    $type = 'bigint';
253
+                }
254
+            }
255
+            if ($type === 'boolean' && isset($options['default'])) {
256
+                $options['default'] = $this->asBool($options['default']);
257
+            }
258
+            if (!empty($options['autoincrement'])
259
+                && !empty($options['notnull'])
260
+            ) {
261
+                $options['primary'] = true;
262
+            }
263 263
 
264
-			$table->addColumn($name, $type, $options);
265
-			if (!empty($options['primary']) && $options['primary']) {
266
-				$table->setPrimaryKey([$name]);
267
-			}
268
-		}
269
-	}
264
+            $table->addColumn($name, $type, $options);
265
+            if (!empty($options['primary']) && $options['primary']) {
266
+                $table->setPrimaryKey([$name]);
267
+            }
268
+        }
269
+    }
270 270
 
271
-	/**
272
-	 * @param \Doctrine\DBAL\Schema\Table $table
273
-	 * @param \SimpleXMLElement $xml
274
-	 * @throws \DomainException
275
-	 */
276
-	private function loadIndex($table, $xml) {
277
-		$name = null;
278
-		$fields = [];
279
-		foreach ($xml->children() as $child) {
280
-			/**
281
-			 * @var \SimpleXMLElement $child
282
-			 */
283
-			switch ($child->getName()) {
284
-				case 'name':
285
-					$name = (string)$child;
286
-					break;
287
-				case 'primary':
288
-					$primary = $this->asBool($child);
289
-					break;
290
-				case 'unique':
291
-					$unique = $this->asBool($child);
292
-					break;
293
-				case 'field':
294
-					foreach ($child->children() as $field) {
295
-						/**
296
-						 * @var \SimpleXMLElement $field
297
-						 */
298
-						switch ($field->getName()) {
299
-							case 'name':
300
-								$field_name = (string)$field;
301
-								$field_name = $this->platform->quoteIdentifier($field_name);
302
-								$fields[] = $field_name;
303
-								break;
304
-							case 'sorting':
305
-								break;
306
-							default:
307
-								throw new \DomainException('Unknown element: ' . $field->getName());
271
+    /**
272
+     * @param \Doctrine\DBAL\Schema\Table $table
273
+     * @param \SimpleXMLElement $xml
274
+     * @throws \DomainException
275
+     */
276
+    private function loadIndex($table, $xml) {
277
+        $name = null;
278
+        $fields = [];
279
+        foreach ($xml->children() as $child) {
280
+            /**
281
+             * @var \SimpleXMLElement $child
282
+             */
283
+            switch ($child->getName()) {
284
+                case 'name':
285
+                    $name = (string)$child;
286
+                    break;
287
+                case 'primary':
288
+                    $primary = $this->asBool($child);
289
+                    break;
290
+                case 'unique':
291
+                    $unique = $this->asBool($child);
292
+                    break;
293
+                case 'field':
294
+                    foreach ($child->children() as $field) {
295
+                        /**
296
+                         * @var \SimpleXMLElement $field
297
+                         */
298
+                        switch ($field->getName()) {
299
+                            case 'name':
300
+                                $field_name = (string)$field;
301
+                                $field_name = $this->platform->quoteIdentifier($field_name);
302
+                                $fields[] = $field_name;
303
+                                break;
304
+                            case 'sorting':
305
+                                break;
306
+                            default:
307
+                                throw new \DomainException('Unknown element: ' . $field->getName());
308 308
 
309
-						}
310
-					}
311
-					break;
312
-				default:
313
-					throw new \DomainException('Unknown element: ' . $child->getName());
309
+                        }
310
+                    }
311
+                    break;
312
+                default:
313
+                    throw new \DomainException('Unknown element: ' . $child->getName());
314 314
 
315
-			}
316
-		}
317
-		if (!empty($fields)) {
318
-			if (isset($primary) && $primary) {
319
-				if ($table->hasPrimaryKey()) {
320
-					return;
321
-				}
322
-				$table->setPrimaryKey($fields, $name);
323
-			} else {
324
-				if (isset($unique) && $unique) {
325
-					$table->addUniqueIndex($fields, $name);
326
-				} else {
327
-					$table->addIndex($fields, $name);
328
-				}
329
-			}
330
-		} else {
331
-			throw new \DomainException('Empty index definition: ' . $name . ' options:' . print_r($fields, true));
332
-		}
333
-	}
315
+            }
316
+        }
317
+        if (!empty($fields)) {
318
+            if (isset($primary) && $primary) {
319
+                if ($table->hasPrimaryKey()) {
320
+                    return;
321
+                }
322
+                $table->setPrimaryKey($fields, $name);
323
+            } else {
324
+                if (isset($unique) && $unique) {
325
+                    $table->addUniqueIndex($fields, $name);
326
+                } else {
327
+                    $table->addIndex($fields, $name);
328
+                }
329
+            }
330
+        } else {
331
+            throw new \DomainException('Empty index definition: ' . $name . ' options:' . print_r($fields, true));
332
+        }
333
+    }
334 334
 
335
-	/**
336
-	 * @param \SimpleXMLElement|string $xml
337
-	 * @return bool
338
-	 */
339
-	private function asBool($xml) {
340
-		$result = (string)$xml;
341
-		if ($result == 'true') {
342
-			$result = true;
343
-		} elseif ($result == 'false') {
344
-			$result = false;
345
-		}
346
-		return (bool)$result;
347
-	}
335
+    /**
336
+     * @param \SimpleXMLElement|string $xml
337
+     * @return bool
338
+     */
339
+    private function asBool($xml) {
340
+        $result = (string)$xml;
341
+        if ($result == 'true') {
342
+            $result = true;
343
+        } elseif ($result == 'false') {
344
+            $result = false;
345
+        }
346
+        return (bool)$result;
347
+    }
348 348
 }
Please login to merge, or discard this patch.
Spacing   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -84,7 +84,7 @@  discard block
 block discarded – undo
84 84
 					$this->loadTable($schema, $child);
85 85
 					break;
86 86
 				default:
87
-					throw new \DomainException('Unknown element: ' . $child->getName());
87
+					throw new \DomainException('Unknown element: '.$child->getName());
88 88
 
89 89
 			}
90 90
 		}
@@ -104,7 +104,7 @@  discard block
 block discarded – undo
104 104
 			 */
105 105
 			switch ($child->getName()) {
106 106
 				case 'name':
107
-					$name = (string)$child;
107
+					$name = (string) $child;
108 108
 					$name = str_replace('*dbprefix*', $this->DBTABLEPREFIX, $name);
109 109
 					$name = $this->platform->quoteIdentifier($name);
110 110
 					$table = $schema->createTable($name);
@@ -120,7 +120,7 @@  discard block
 block discarded – undo
120 120
 					$this->loadDeclaration($table, $child);
121 121
 					break;
122 122
 				default:
123
-					throw new \DomainException('Unknown element: ' . $child->getName());
123
+					throw new \DomainException('Unknown element: '.$child->getName());
124 124
 
125 125
 			}
126 126
 		}
@@ -144,7 +144,7 @@  discard block
 block discarded – undo
144 144
 					$this->loadIndex($table, $child);
145 145
 					break;
146 146
 				default:
147
-					throw new \DomainException('Unknown element: ' . $child->getName());
147
+					throw new \DomainException('Unknown element: '.$child->getName());
148 148
 
149 149
 			}
150 150
 		}
@@ -156,18 +156,18 @@  discard block
 block discarded – undo
156 156
 	 * @throws \DomainException
157 157
 	 */
158 158
 	private function loadField($table, $xml) {
159
-		$options = [ 'notnull' => false ];
159
+		$options = ['notnull' => false];
160 160
 		foreach ($xml->children() as $child) {
161 161
 			/**
162 162
 			 * @var \SimpleXMLElement $child
163 163
 			 */
164 164
 			switch ($child->getName()) {
165 165
 				case 'name':
166
-					$name = (string)$child;
166
+					$name = (string) $child;
167 167
 					$name = $this->platform->quoteIdentifier($name);
168 168
 					break;
169 169
 				case 'type':
170
-					$type = (string)$child;
170
+					$type = (string) $child;
171 171
 					switch ($type) {
172 172
 						case 'text':
173 173
 							$type = 'string';
@@ -184,7 +184,7 @@  discard block
 block discarded – undo
184 184
 					}
185 185
 					break;
186 186
 				case 'length':
187
-					$length = (string)$child;
187
+					$length = (string) $child;
188 188
 					$options['length'] = $length;
189 189
 					break;
190 190
 				case 'unsigned':
@@ -200,11 +200,11 @@  discard block
 block discarded – undo
200 200
 					$options['autoincrement'] = $autoincrement;
201 201
 					break;
202 202
 				case 'default':
203
-					$default = (string)$child;
203
+					$default = (string) $child;
204 204
 					$options['default'] = $default;
205 205
 					break;
206 206
 				case 'comments':
207
-					$comment = (string)$child;
207
+					$comment = (string) $child;
208 208
 					$options['comment'] = $comment;
209 209
 					break;
210 210
 				case 'primary':
@@ -212,15 +212,15 @@  discard block
 block discarded – undo
212 212
 					$options['primary'] = $primary;
213 213
 					break;
214 214
 				case 'precision':
215
-					$precision = (string)$child;
215
+					$precision = (string) $child;
216 216
 					$options['precision'] = $precision;
217 217
 					break;
218 218
 				case 'scale':
219
-					$scale = (string)$child;
219
+					$scale = (string) $child;
220 220
 					$options['scale'] = $scale;
221 221
 					break;
222 222
 				default:
223
-					throw new \DomainException('Unknown element: ' . $child->getName());
223
+					throw new \DomainException('Unknown element: '.$child->getName());
224 224
 
225 225
 			}
226 226
 		}
@@ -242,7 +242,7 @@  discard block
 block discarded – undo
242 242
 				}
243 243
 			}
244 244
 			if ($type === 'integer' && isset($options['default'])) {
245
-				$options['default'] = (int)$options['default'];
245
+				$options['default'] = (int) $options['default'];
246 246
 			}
247 247
 			if ($type === 'integer' && isset($options['length'])) {
248 248
 				$length = $options['length'];
@@ -282,7 +282,7 @@  discard block
 block discarded – undo
282 282
 			 */
283 283
 			switch ($child->getName()) {
284 284
 				case 'name':
285
-					$name = (string)$child;
285
+					$name = (string) $child;
286 286
 					break;
287 287
 				case 'primary':
288 288
 					$primary = $this->asBool($child);
@@ -297,20 +297,20 @@  discard block
 block discarded – undo
297 297
 						 */
298 298
 						switch ($field->getName()) {
299 299
 							case 'name':
300
-								$field_name = (string)$field;
300
+								$field_name = (string) $field;
301 301
 								$field_name = $this->platform->quoteIdentifier($field_name);
302 302
 								$fields[] = $field_name;
303 303
 								break;
304 304
 							case 'sorting':
305 305
 								break;
306 306
 							default:
307
-								throw new \DomainException('Unknown element: ' . $field->getName());
307
+								throw new \DomainException('Unknown element: '.$field->getName());
308 308
 
309 309
 						}
310 310
 					}
311 311
 					break;
312 312
 				default:
313
-					throw new \DomainException('Unknown element: ' . $child->getName());
313
+					throw new \DomainException('Unknown element: '.$child->getName());
314 314
 
315 315
 			}
316 316
 		}
@@ -328,7 +328,7 @@  discard block
 block discarded – undo
328 328
 				}
329 329
 			}
330 330
 		} else {
331
-			throw new \DomainException('Empty index definition: ' . $name . ' options:' . print_r($fields, true));
331
+			throw new \DomainException('Empty index definition: '.$name.' options:'.print_r($fields, true));
332 332
 		}
333 333
 	}
334 334
 
@@ -337,12 +337,12 @@  discard block
 block discarded – undo
337 337
 	 * @return bool
338 338
 	 */
339 339
 	private function asBool($xml) {
340
-		$result = (string)$xml;
340
+		$result = (string) $xml;
341 341
 		if ($result == 'true') {
342 342
 			$result = true;
343 343
 		} elseif ($result == 'false') {
344 344
 			$result = false;
345 345
 		}
346
-		return (bool)$result;
346
+		return (bool) $result;
347 347
 	}
348 348
 }
Please login to merge, or discard this patch.
lib/private/DB/SchemaWrapper.php 2 patches
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -62,7 +62,7 @@  discard block
 block discarded – undo
62 62
 	 */
63 63
 	public function getTableNamesWithoutPrefix() {
64 64
 		$tableNames = $this->schema->getTableNames();
65
-		return array_map(function ($tableName) {
65
+		return array_map(function($tableName) {
66 66
 			if (strpos($tableName, $this->connection->getPrefix()) === 0) {
67 67
 				return substr($tableName, strlen($this->connection->getPrefix()));
68 68
 			}
@@ -80,7 +80,7 @@  discard block
 block discarded – undo
80 80
 	 * @throws \Doctrine\DBAL\Schema\SchemaException
81 81
 	 */
82 82
 	public function getTable($tableName) {
83
-		return $this->schema->getTable($this->connection->getPrefix() . $tableName);
83
+		return $this->schema->getTable($this->connection->getPrefix().$tableName);
84 84
 	}
85 85
 
86 86
 	/**
@@ -91,7 +91,7 @@  discard block
 block discarded – undo
91 91
 	 * @return boolean
92 92
 	 */
93 93
 	public function hasTable($tableName) {
94
-		return $this->schema->hasTable($this->connection->getPrefix() . $tableName);
94
+		return $this->schema->hasTable($this->connection->getPrefix().$tableName);
95 95
 	}
96 96
 
97 97
 	/**
@@ -101,7 +101,7 @@  discard block
 block discarded – undo
101 101
 	 * @return \Doctrine\DBAL\Schema\Table
102 102
 	 */
103 103
 	public function createTable($tableName) {
104
-		return $this->schema->createTable($this->connection->getPrefix() . $tableName);
104
+		return $this->schema->createTable($this->connection->getPrefix().$tableName);
105 105
 	}
106 106
 
107 107
 	/**
@@ -125,7 +125,7 @@  discard block
 block discarded – undo
125 125
 	 */
126 126
 	public function dropTable($tableName) {
127 127
 		$this->tablesToDelete[$tableName] = true;
128
-		return $this->schema->dropTable($this->connection->getPrefix() . $tableName);
128
+		return $this->schema->dropTable($this->connection->getPrefix().$tableName);
129 129
 	}
130 130
 
131 131
 	/**
Please login to merge, or discard this patch.
Indentation   +103 added lines, -103 removed lines patch added patch discarded remove patch
@@ -29,107 +29,107 @@
 block discarded – undo
29 29
 
30 30
 class SchemaWrapper implements ISchemaWrapper {
31 31
 
32
-	/** @var IDBConnection|Connection */
33
-	protected $connection;
34
-
35
-	/** @var Schema */
36
-	protected $schema;
37
-
38
-	/** @var array */
39
-	protected $tablesToDelete = [];
40
-
41
-	/**
42
-	 * @param IDBConnection $connection
43
-	 */
44
-	public function __construct(IDBConnection $connection) {
45
-		$this->connection = $connection;
46
-		$this->schema = $this->connection->createSchema();
47
-	}
48
-
49
-	public function getWrappedSchema() {
50
-		return $this->schema;
51
-	}
52
-
53
-	public function performDropTableCalls() {
54
-		foreach ($this->tablesToDelete as $tableName => $true) {
55
-			$this->connection->dropTable($tableName);
56
-			unset($this->tablesToDelete[$tableName]);
57
-		}
58
-	}
59
-
60
-	/**
61
-	 * Gets all table names
62
-	 *
63
-	 * @return array
64
-	 */
65
-	public function getTableNamesWithoutPrefix() {
66
-		$tableNames = $this->schema->getTableNames();
67
-		return array_map(function ($tableName) {
68
-			if (strpos($tableName, $this->connection->getPrefix()) === 0) {
69
-				return substr($tableName, strlen($this->connection->getPrefix()));
70
-			}
71
-
72
-			return $tableName;
73
-		}, $tableNames);
74
-	}
75
-
76
-	// Overwritten methods
77
-
78
-	/**
79
-	 * @return array
80
-	 */
81
-	public function getTableNames() {
82
-		return $this->schema->getTableNames();
83
-	}
84
-
85
-	/**
86
-	 * @param string $tableName
87
-	 *
88
-	 * @return \Doctrine\DBAL\Schema\Table
89
-	 * @throws \Doctrine\DBAL\Schema\SchemaException
90
-	 */
91
-	public function getTable($tableName) {
92
-		return $this->schema->getTable($this->connection->getPrefix() . $tableName);
93
-	}
94
-
95
-	/**
96
-	 * Does this schema have a table with the given name?
97
-	 *
98
-	 * @param string $tableName
99
-	 *
100
-	 * @return boolean
101
-	 */
102
-	public function hasTable($tableName) {
103
-		return $this->schema->hasTable($this->connection->getPrefix() . $tableName);
104
-	}
105
-
106
-	/**
107
-	 * Creates a new table.
108
-	 *
109
-	 * @param string $tableName
110
-	 * @return \Doctrine\DBAL\Schema\Table
111
-	 */
112
-	public function createTable($tableName) {
113
-		return $this->schema->createTable($this->connection->getPrefix() . $tableName);
114
-	}
115
-
116
-	/**
117
-	 * Drops a table from the schema.
118
-	 *
119
-	 * @param string $tableName
120
-	 * @return \Doctrine\DBAL\Schema\Schema
121
-	 */
122
-	public function dropTable($tableName) {
123
-		$this->tablesToDelete[$tableName] = true;
124
-		return $this->schema->dropTable($this->connection->getPrefix() . $tableName);
125
-	}
126
-
127
-	/**
128
-	 * Gets all tables of this schema.
129
-	 *
130
-	 * @return \Doctrine\DBAL\Schema\Table[]
131
-	 */
132
-	public function getTables() {
133
-		return $this->schema->getTables();
134
-	}
32
+    /** @var IDBConnection|Connection */
33
+    protected $connection;
34
+
35
+    /** @var Schema */
36
+    protected $schema;
37
+
38
+    /** @var array */
39
+    protected $tablesToDelete = [];
40
+
41
+    /**
42
+     * @param IDBConnection $connection
43
+     */
44
+    public function __construct(IDBConnection $connection) {
45
+        $this->connection = $connection;
46
+        $this->schema = $this->connection->createSchema();
47
+    }
48
+
49
+    public function getWrappedSchema() {
50
+        return $this->schema;
51
+    }
52
+
53
+    public function performDropTableCalls() {
54
+        foreach ($this->tablesToDelete as $tableName => $true) {
55
+            $this->connection->dropTable($tableName);
56
+            unset($this->tablesToDelete[$tableName]);
57
+        }
58
+    }
59
+
60
+    /**
61
+     * Gets all table names
62
+     *
63
+     * @return array
64
+     */
65
+    public function getTableNamesWithoutPrefix() {
66
+        $tableNames = $this->schema->getTableNames();
67
+        return array_map(function ($tableName) {
68
+            if (strpos($tableName, $this->connection->getPrefix()) === 0) {
69
+                return substr($tableName, strlen($this->connection->getPrefix()));
70
+            }
71
+
72
+            return $tableName;
73
+        }, $tableNames);
74
+    }
75
+
76
+    // Overwritten methods
77
+
78
+    /**
79
+     * @return array
80
+     */
81
+    public function getTableNames() {
82
+        return $this->schema->getTableNames();
83
+    }
84
+
85
+    /**
86
+     * @param string $tableName
87
+     *
88
+     * @return \Doctrine\DBAL\Schema\Table
89
+     * @throws \Doctrine\DBAL\Schema\SchemaException
90
+     */
91
+    public function getTable($tableName) {
92
+        return $this->schema->getTable($this->connection->getPrefix() . $tableName);
93
+    }
94
+
95
+    /**
96
+     * Does this schema have a table with the given name?
97
+     *
98
+     * @param string $tableName
99
+     *
100
+     * @return boolean
101
+     */
102
+    public function hasTable($tableName) {
103
+        return $this->schema->hasTable($this->connection->getPrefix() . $tableName);
104
+    }
105
+
106
+    /**
107
+     * Creates a new table.
108
+     *
109
+     * @param string $tableName
110
+     * @return \Doctrine\DBAL\Schema\Table
111
+     */
112
+    public function createTable($tableName) {
113
+        return $this->schema->createTable($this->connection->getPrefix() . $tableName);
114
+    }
115
+
116
+    /**
117
+     * Drops a table from the schema.
118
+     *
119
+     * @param string $tableName
120
+     * @return \Doctrine\DBAL\Schema\Schema
121
+     */
122
+    public function dropTable($tableName) {
123
+        $this->tablesToDelete[$tableName] = true;
124
+        return $this->schema->dropTable($this->connection->getPrefix() . $tableName);
125
+    }
126
+
127
+    /**
128
+     * Gets all tables of this schema.
129
+     *
130
+     * @return \Doctrine\DBAL\Schema\Table[]
131
+     */
132
+    public function getTables() {
133
+        return $this->schema->getTables();
134
+    }
135 135
 }
Please login to merge, or discard this patch.
lib/private/DB/OracleConnection.php 2 patches
Indentation   +71 added lines, -71 removed lines patch added patch discarded remove patch
@@ -26,80 +26,80 @@
 block discarded – undo
26 26
 namespace OC\DB;
27 27
 
28 28
 class OracleConnection extends Connection {
29
-	/**
30
-	 * Quote the keys of the array
31
-	 */
32
-	private function quoteKeys(array $data) {
33
-		$return = [];
34
-		$c = $this->getDatabasePlatform()->getIdentifierQuoteCharacter();
35
-		foreach ($data as $key => $value) {
36
-			if ($key[0] !== $c) {
37
-				$return[$this->quoteIdentifier($key)] = $value;
38
-			} else {
39
-				$return[$key] = $value;
40
-			}
41
-		}
42
-		return $return;
43
-	}
29
+    /**
30
+     * Quote the keys of the array
31
+     */
32
+    private function quoteKeys(array $data) {
33
+        $return = [];
34
+        $c = $this->getDatabasePlatform()->getIdentifierQuoteCharacter();
35
+        foreach ($data as $key => $value) {
36
+            if ($key[0] !== $c) {
37
+                $return[$this->quoteIdentifier($key)] = $value;
38
+            } else {
39
+                $return[$key] = $value;
40
+            }
41
+        }
42
+        return $return;
43
+    }
44 44
 
45
-	/**
46
-	 * {@inheritDoc}
47
-	 */
48
-	public function insert($tableName, array $data, array $types = []) {
49
-		if ($tableName[0] !== $this->getDatabasePlatform()->getIdentifierQuoteCharacter()) {
50
-			$tableName = $this->quoteIdentifier($tableName);
51
-		}
52
-		$data = $this->quoteKeys($data);
53
-		return parent::insert($tableName, $data, $types);
54
-	}
45
+    /**
46
+     * {@inheritDoc}
47
+     */
48
+    public function insert($tableName, array $data, array $types = []) {
49
+        if ($tableName[0] !== $this->getDatabasePlatform()->getIdentifierQuoteCharacter()) {
50
+            $tableName = $this->quoteIdentifier($tableName);
51
+        }
52
+        $data = $this->quoteKeys($data);
53
+        return parent::insert($tableName, $data, $types);
54
+    }
55 55
 
56
-	/**
57
-	 * {@inheritDoc}
58
-	 */
59
-	public function update($tableName, array $data, array $identifier, array $types = []) {
60
-		if ($tableName[0] !== $this->getDatabasePlatform()->getIdentifierQuoteCharacter()) {
61
-			$tableName = $this->quoteIdentifier($tableName);
62
-		}
63
-		$data = $this->quoteKeys($data);
64
-		$identifier = $this->quoteKeys($identifier);
65
-		return parent::update($tableName, $data, $identifier, $types);
66
-	}
56
+    /**
57
+     * {@inheritDoc}
58
+     */
59
+    public function update($tableName, array $data, array $identifier, array $types = []) {
60
+        if ($tableName[0] !== $this->getDatabasePlatform()->getIdentifierQuoteCharacter()) {
61
+            $tableName = $this->quoteIdentifier($tableName);
62
+        }
63
+        $data = $this->quoteKeys($data);
64
+        $identifier = $this->quoteKeys($identifier);
65
+        return parent::update($tableName, $data, $identifier, $types);
66
+    }
67 67
 
68
-	/**
69
-	 * {@inheritDoc}
70
-	 */
71
-	public function delete($tableExpression, array $identifier, array $types = []) {
72
-		if ($tableExpression[0] !== $this->getDatabasePlatform()->getIdentifierQuoteCharacter()) {
73
-			$tableExpression = $this->quoteIdentifier($tableExpression);
74
-		}
75
-		$identifier = $this->quoteKeys($identifier);
76
-		return parent::delete($tableExpression, $identifier);
77
-	}
68
+    /**
69
+     * {@inheritDoc}
70
+     */
71
+    public function delete($tableExpression, array $identifier, array $types = []) {
72
+        if ($tableExpression[0] !== $this->getDatabasePlatform()->getIdentifierQuoteCharacter()) {
73
+            $tableExpression = $this->quoteIdentifier($tableExpression);
74
+        }
75
+        $identifier = $this->quoteKeys($identifier);
76
+        return parent::delete($tableExpression, $identifier);
77
+    }
78 78
 
79
-	/**
80
-	 * Drop a table from the database if it exists
81
-	 *
82
-	 * @param string $table table name without the prefix
83
-	 */
84
-	public function dropTable($table) {
85
-		$table = $this->tablePrefix . trim($table);
86
-		$table = $this->quoteIdentifier($table);
87
-		$schema = $this->getSchemaManager();
88
-		if ($schema->tablesExist([$table])) {
89
-			$schema->dropTable($table);
90
-		}
91
-	}
79
+    /**
80
+     * Drop a table from the database if it exists
81
+     *
82
+     * @param string $table table name without the prefix
83
+     */
84
+    public function dropTable($table) {
85
+        $table = $this->tablePrefix . trim($table);
86
+        $table = $this->quoteIdentifier($table);
87
+        $schema = $this->getSchemaManager();
88
+        if ($schema->tablesExist([$table])) {
89
+            $schema->dropTable($table);
90
+        }
91
+    }
92 92
 
93
-	/**
94
-	 * Check if a table exists
95
-	 *
96
-	 * @param string $table table name without the prefix
97
-	 * @return bool
98
-	 */
99
-	public function tableExists($table) {
100
-		$table = $this->tablePrefix . trim($table);
101
-		$table = $this->quoteIdentifier($table);
102
-		$schema = $this->getSchemaManager();
103
-		return $schema->tablesExist([$table]);
104
-	}
93
+    /**
94
+     * Check if a table exists
95
+     *
96
+     * @param string $table table name without the prefix
97
+     * @return bool
98
+     */
99
+    public function tableExists($table) {
100
+        $table = $this->tablePrefix . trim($table);
101
+        $table = $this->quoteIdentifier($table);
102
+        $schema = $this->getSchemaManager();
103
+        return $schema->tablesExist([$table]);
104
+    }
105 105
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -82,7 +82,7 @@  discard block
 block discarded – undo
82 82
 	 * @param string $table table name without the prefix
83 83
 	 */
84 84
 	public function dropTable($table) {
85
-		$table = $this->tablePrefix . trim($table);
85
+		$table = $this->tablePrefix.trim($table);
86 86
 		$table = $this->quoteIdentifier($table);
87 87
 		$schema = $this->getSchemaManager();
88 88
 		if ($schema->tablesExist([$table])) {
@@ -97,7 +97,7 @@  discard block
 block discarded – undo
97 97
 	 * @return bool
98 98
 	 */
99 99
 	public function tableExists($table) {
100
-		$table = $this->tablePrefix . trim($table);
100
+		$table = $this->tablePrefix.trim($table);
101 101
 		$table = $this->quoteIdentifier($table);
102 102
 		$schema = $this->getSchemaManager();
103 103
 		return $schema->tablesExist([$table]);
Please login to merge, or discard this patch.
lib/private/DB/MDB2SchemaWriter.php 2 patches
Indentation   +138 added lines, -138 removed lines patch added patch discarded remove patch
@@ -31,150 +31,150 @@
 block discarded – undo
31 31
 
32 32
 class MDB2SchemaWriter {
33 33
 
34
-	/**
35
-	 * @param string $file
36
-	 * @param \OC\DB\Connection $conn
37
-	 * @return bool
38
-	 */
39
-	public static function saveSchemaToFile($file, \OC\DB\Connection $conn) {
40
-		$config = \OC::$server->getConfig();
34
+    /**
35
+     * @param string $file
36
+     * @param \OC\DB\Connection $conn
37
+     * @return bool
38
+     */
39
+    public static function saveSchemaToFile($file, \OC\DB\Connection $conn) {
40
+        $config = \OC::$server->getConfig();
41 41
 
42
-		$xml = new \SimpleXMLElement('<database/>');
43
-		$xml->addChild('name', $config->getSystemValue('dbname', 'owncloud'));
44
-		$xml->addChild('create', 'true');
45
-		$xml->addChild('overwrite', 'false');
46
-		if ($config->getSystemValue('dbtype', 'sqlite') === 'mysql' && $config->getSystemValue('mysql.utf8mb4', false)) {
47
-			$xml->addChild('charset', 'utf8mb4');
48
-		} else {
49
-			$xml->addChild('charset', 'utf8');
50
-		}
42
+        $xml = new \SimpleXMLElement('<database/>');
43
+        $xml->addChild('name', $config->getSystemValue('dbname', 'owncloud'));
44
+        $xml->addChild('create', 'true');
45
+        $xml->addChild('overwrite', 'false');
46
+        if ($config->getSystemValue('dbtype', 'sqlite') === 'mysql' && $config->getSystemValue('mysql.utf8mb4', false)) {
47
+            $xml->addChild('charset', 'utf8mb4');
48
+        } else {
49
+            $xml->addChild('charset', 'utf8');
50
+        }
51 51
 
52
-		// FIX ME: bloody work around
53
-		if ($config->getSystemValue('dbtype', 'sqlite') === 'oci') {
54
-			$filterExpression = '/^"' . preg_quote($conn->getPrefix()) . '/';
55
-		} else {
56
-			$filterExpression = '/^' . preg_quote($conn->getPrefix()) . '/';
57
-		}
58
-		$conn->getConfiguration()->setFilterSchemaAssetsExpression($filterExpression);
52
+        // FIX ME: bloody work around
53
+        if ($config->getSystemValue('dbtype', 'sqlite') === 'oci') {
54
+            $filterExpression = '/^"' . preg_quote($conn->getPrefix()) . '/';
55
+        } else {
56
+            $filterExpression = '/^' . preg_quote($conn->getPrefix()) . '/';
57
+        }
58
+        $conn->getConfiguration()->setFilterSchemaAssetsExpression($filterExpression);
59 59
 
60
-		foreach ($conn->getSchemaManager()->listTables() as $table) {
61
-			self::saveTable($table, $xml->addChild('table'));
62
-		}
63
-		file_put_contents($file, $xml->asXML());
64
-		return true;
65
-	}
60
+        foreach ($conn->getSchemaManager()->listTables() as $table) {
61
+            self::saveTable($table, $xml->addChild('table'));
62
+        }
63
+        file_put_contents($file, $xml->asXML());
64
+        return true;
65
+    }
66 66
 
67
-	/**
68
-	 * @param \Doctrine\DBAL\Schema\Table $table
69
-	 * @param \SimpleXMLElement $xml
70
-	 */
71
-	private static function saveTable($table, $xml) {
72
-		$xml->addChild('name', $table->getName());
73
-		$declaration = $xml->addChild('declaration');
74
-		foreach ($table->getColumns() as $column) {
75
-			self::saveColumn($column, $declaration->addChild('field'));
76
-		}
77
-		foreach ($table->getIndexes() as $index) {
78
-			if ($index->getName() == 'PRIMARY') {
79
-				$autoincrement = false;
80
-				foreach ($index->getColumns() as $column) {
81
-					if ($table->getColumn($column)->getAutoincrement()) {
82
-						$autoincrement = true;
83
-					}
84
-				}
85
-				if ($autoincrement) {
86
-					continue;
87
-				}
88
-			}
89
-			self::saveIndex($index, $declaration->addChild('index'));
90
-		}
91
-	}
67
+    /**
68
+     * @param \Doctrine\DBAL\Schema\Table $table
69
+     * @param \SimpleXMLElement $xml
70
+     */
71
+    private static function saveTable($table, $xml) {
72
+        $xml->addChild('name', $table->getName());
73
+        $declaration = $xml->addChild('declaration');
74
+        foreach ($table->getColumns() as $column) {
75
+            self::saveColumn($column, $declaration->addChild('field'));
76
+        }
77
+        foreach ($table->getIndexes() as $index) {
78
+            if ($index->getName() == 'PRIMARY') {
79
+                $autoincrement = false;
80
+                foreach ($index->getColumns() as $column) {
81
+                    if ($table->getColumn($column)->getAutoincrement()) {
82
+                        $autoincrement = true;
83
+                    }
84
+                }
85
+                if ($autoincrement) {
86
+                    continue;
87
+                }
88
+            }
89
+            self::saveIndex($index, $declaration->addChild('index'));
90
+        }
91
+    }
92 92
 
93
-	/**
94
-	 * @param Column $column
95
-	 * @param \SimpleXMLElement $xml
96
-	 */
97
-	private static function saveColumn($column, $xml) {
98
-		$xml->addChild('name', $column->getName());
99
-		switch ($column->getType()) {
100
-			case 'SmallInt':
101
-			case 'Integer':
102
-			case 'BigInt':
103
-				$xml->addChild('type', 'integer');
104
-				$default = $column->getDefault();
105
-				if (is_null($default) && $column->getAutoincrement()) {
106
-					$default = '0';
107
-				}
108
-				$xml->addChild('default', $default);
109
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
110
-				if ($column->getAutoincrement()) {
111
-					$xml->addChild('autoincrement', '1');
112
-				}
113
-				if ($column->getUnsigned()) {
114
-					$xml->addChild('unsigned', 'true');
115
-				}
116
-				$length = '4';
117
-				if ($column->getType() == 'SmallInt') {
118
-					$length = '2';
119
-				} elseif ($column->getType() == 'BigInt') {
120
-					$length = '8';
121
-				}
122
-				$xml->addChild('length', $length);
123
-				break;
124
-			case 'String':
125
-				$xml->addChild('type', 'text');
126
-				$default = trim($column->getDefault());
127
-				if ($default === '') {
128
-					$default = false;
129
-				}
130
-				$xml->addChild('default', $default);
131
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
132
-				$xml->addChild('length', $column->getLength());
133
-				break;
134
-			case 'Text':
135
-				$xml->addChild('type', 'clob');
136
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
137
-				break;
138
-			case 'Decimal':
139
-				$xml->addChild('type', 'decimal');
140
-				$xml->addChild('default', $column->getDefault());
141
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
142
-				$xml->addChild('length', '15');
143
-				break;
144
-			case 'Boolean':
145
-				$xml->addChild('type', 'integer');
146
-				$xml->addChild('default', $column->getDefault());
147
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
148
-				$xml->addChild('length', '1');
149
-				break;
150
-			case 'DateTime':
151
-				$xml->addChild('type', 'timestamp');
152
-				$xml->addChild('default', $column->getDefault());
153
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
154
-				break;
93
+    /**
94
+     * @param Column $column
95
+     * @param \SimpleXMLElement $xml
96
+     */
97
+    private static function saveColumn($column, $xml) {
98
+        $xml->addChild('name', $column->getName());
99
+        switch ($column->getType()) {
100
+            case 'SmallInt':
101
+            case 'Integer':
102
+            case 'BigInt':
103
+                $xml->addChild('type', 'integer');
104
+                $default = $column->getDefault();
105
+                if (is_null($default) && $column->getAutoincrement()) {
106
+                    $default = '0';
107
+                }
108
+                $xml->addChild('default', $default);
109
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
110
+                if ($column->getAutoincrement()) {
111
+                    $xml->addChild('autoincrement', '1');
112
+                }
113
+                if ($column->getUnsigned()) {
114
+                    $xml->addChild('unsigned', 'true');
115
+                }
116
+                $length = '4';
117
+                if ($column->getType() == 'SmallInt') {
118
+                    $length = '2';
119
+                } elseif ($column->getType() == 'BigInt') {
120
+                    $length = '8';
121
+                }
122
+                $xml->addChild('length', $length);
123
+                break;
124
+            case 'String':
125
+                $xml->addChild('type', 'text');
126
+                $default = trim($column->getDefault());
127
+                if ($default === '') {
128
+                    $default = false;
129
+                }
130
+                $xml->addChild('default', $default);
131
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
132
+                $xml->addChild('length', $column->getLength());
133
+                break;
134
+            case 'Text':
135
+                $xml->addChild('type', 'clob');
136
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
137
+                break;
138
+            case 'Decimal':
139
+                $xml->addChild('type', 'decimal');
140
+                $xml->addChild('default', $column->getDefault());
141
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
142
+                $xml->addChild('length', '15');
143
+                break;
144
+            case 'Boolean':
145
+                $xml->addChild('type', 'integer');
146
+                $xml->addChild('default', $column->getDefault());
147
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
148
+                $xml->addChild('length', '1');
149
+                break;
150
+            case 'DateTime':
151
+                $xml->addChild('type', 'timestamp');
152
+                $xml->addChild('default', $column->getDefault());
153
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
154
+                break;
155 155
 
156
-		}
157
-	}
156
+        }
157
+    }
158 158
 
159
-	/**
160
-	 * @param Index $index
161
-	 * @param \SimpleXMLElement $xml
162
-	 */
163
-	private static function saveIndex($index, $xml) {
164
-		$xml->addChild('name', $index->getName());
165
-		if ($index->isPrimary()) {
166
-			$xml->addChild('primary', 'true');
167
-		} elseif ($index->isUnique()) {
168
-			$xml->addChild('unique', 'true');
169
-		}
170
-		foreach ($index->getColumns() as $column) {
171
-			$field = $xml->addChild('field');
172
-			$field->addChild('name', $column);
173
-			$field->addChild('sorting', 'ascending');
174
-		}
175
-	}
159
+    /**
160
+     * @param Index $index
161
+     * @param \SimpleXMLElement $xml
162
+     */
163
+    private static function saveIndex($index, $xml) {
164
+        $xml->addChild('name', $index->getName());
165
+        if ($index->isPrimary()) {
166
+            $xml->addChild('primary', 'true');
167
+        } elseif ($index->isUnique()) {
168
+            $xml->addChild('unique', 'true');
169
+        }
170
+        foreach ($index->getColumns() as $column) {
171
+            $field = $xml->addChild('field');
172
+            $field->addChild('name', $column);
173
+            $field->addChild('sorting', 'ascending');
174
+        }
175
+    }
176 176
 
177
-	private static function toBool($bool) {
178
-		return $bool ? 'true' : 'false';
179
-	}
177
+    private static function toBool($bool) {
178
+        return $bool ? 'true' : 'false';
179
+    }
180 180
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -51,9 +51,9 @@
 block discarded – undo
51 51
 
52 52
 		// FIX ME: bloody work around
53 53
 		if ($config->getSystemValue('dbtype', 'sqlite') === 'oci') {
54
-			$filterExpression = '/^"' . preg_quote($conn->getPrefix()) . '/';
54
+			$filterExpression = '/^"'.preg_quote($conn->getPrefix()).'/';
55 55
 		} else {
56
-			$filterExpression = '/^' . preg_quote($conn->getPrefix()) . '/';
56
+			$filterExpression = '/^'.preg_quote($conn->getPrefix()).'/';
57 57
 		}
58 58
 		$conn->getConfiguration()->setFilterSchemaAssetsExpression($filterExpression);
59 59
 
Please login to merge, or discard this patch.
lib/private/PreviewManager.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -333,7 +333,7 @@
 block discarded – undo
333 333
 	 */
334 334
 	protected function registerCoreProvider($class, $mimeType, $options = []) {
335 335
 		if (in_array(trim($class, '\\'), $this->getEnabledDefaultProvider())) {
336
-			$this->registerProvider($mimeType, function () use ($class, $options) {
336
+			$this->registerProvider($mimeType, function() use ($class, $options) {
337 337
 				return new $class($options);
338 338
 			});
339 339
 		}
Please login to merge, or discard this patch.
Indentation   +381 added lines, -381 removed lines patch added patch discarded remove patch
@@ -42,390 +42,390 @@
 block discarded – undo
42 42
 use Symfony\Component\EventDispatcher\EventDispatcherInterface;
43 43
 
44 44
 class PreviewManager implements IPreview {
45
-	/** @var IConfig */
46
-	protected $config;
45
+    /** @var IConfig */
46
+    protected $config;
47 47
 
48
-	/** @var IRootFolder */
49
-	protected $rootFolder;
48
+    /** @var IRootFolder */
49
+    protected $rootFolder;
50 50
 
51
-	/** @var IAppData */
52
-	protected $appData;
51
+    /** @var IAppData */
52
+    protected $appData;
53 53
 
54
-	/** @var EventDispatcherInterface */
55
-	protected $eventDispatcher;
54
+    /** @var EventDispatcherInterface */
55
+    protected $eventDispatcher;
56 56
 
57
-	/** @var Generator */
58
-	private $generator;
57
+    /** @var Generator */
58
+    private $generator;
59 59
 	
60
-	/** @var GeneratorHelper */
61
-	private $helper;
62
-
63
-	/** @var bool */
64
-	protected $providerListDirty = false;
65
-
66
-	/** @var bool */
67
-	protected $registeredCoreProviders = false;
68
-
69
-	/** @var array */
70
-	protected $providers = [];
71
-
72
-	/** @var array mime type => support status */
73
-	protected $mimeTypeSupportMap = [];
74
-
75
-	/** @var array */
76
-	protected $defaultProviders;
77
-
78
-	/** @var string */
79
-	protected $userId;
80
-
81
-	/**
82
-	 * PreviewManager constructor.
83
-	 *
84
-	 * @param IConfig $config
85
-	 * @param IRootFolder $rootFolder
86
-	 * @param IAppData $appData
87
-	 * @param EventDispatcherInterface $eventDispatcher
88
-	 * @param string $userId
89
-	 */
90
-	public function __construct(IConfig $config,
91
-								IRootFolder $rootFolder,
92
-								IAppData $appData,
93
-								EventDispatcherInterface $eventDispatcher,
94
-								GeneratorHelper $helper,
95
-								$userId) {
96
-		$this->config = $config;
97
-		$this->rootFolder = $rootFolder;
98
-		$this->appData = $appData;
99
-		$this->eventDispatcher = $eventDispatcher;
100
-		$this->helper = $helper;
101
-		$this->userId = $userId;
102
-	}
103
-
104
-	/**
105
-	 * In order to improve lazy loading a closure can be registered which will be
106
-	 * called in case preview providers are actually requested
107
-	 *
108
-	 * $callable has to return an instance of \OCP\Preview\IProvider or \OCP\Preview\IProviderV2
109
-	 *
110
-	 * @param string $mimeTypeRegex Regex with the mime types that are supported by this provider
111
-	 * @param \Closure $callable
112
-	 * @return void
113
-	 */
114
-	public function registerProvider($mimeTypeRegex, \Closure $callable) {
115
-		if (!$this->config->getSystemValue('enable_previews', true)) {
116
-			return;
117
-		}
118
-
119
-		if (!isset($this->providers[$mimeTypeRegex])) {
120
-			$this->providers[$mimeTypeRegex] = [];
121
-		}
122
-		$this->providers[$mimeTypeRegex][] = $callable;
123
-		$this->providerListDirty = true;
124
-	}
125
-
126
-	/**
127
-	 * Get all providers
128
-	 * @return array
129
-	 */
130
-	public function getProviders() {
131
-		if (!$this->config->getSystemValue('enable_previews', true)) {
132
-			return [];
133
-		}
134
-
135
-		$this->registerCoreProviders();
136
-		if ($this->providerListDirty) {
137
-			$keys = array_map('strlen', array_keys($this->providers));
138
-			array_multisort($keys, SORT_DESC, $this->providers);
139
-			$this->providerListDirty = false;
140
-		}
141
-
142
-		return $this->providers;
143
-	}
144
-
145
-	/**
146
-	 * Does the manager have any providers
147
-	 * @return bool
148
-	 */
149
-	public function hasProviders() {
150
-		$this->registerCoreProviders();
151
-		return !empty($this->providers);
152
-	}
153
-
154
-	private function getGenerator(): Generator {
155
-		if ($this->generator === null) {
156
-			$this->generator = new Generator(
157
-				$this->config,
158
-				$this,
159
-				$this->appData,
160
-				new GeneratorHelper(
161
-					$this->rootFolder,
162
-					$this->config
163
-				),
164
-				$this->eventDispatcher
165
-			);
166
-		}
167
-		return $this->generator;
168
-	}
169
-
170
-	/**
171
-	 * Returns a preview of a file
172
-	 *
173
-	 * The cache is searched first and if nothing usable was found then a preview is
174
-	 * generated by one of the providers
175
-	 *
176
-	 * @param File $file
177
-	 * @param int $width
178
-	 * @param int $height
179
-	 * @param bool $crop
180
-	 * @param string $mode
181
-	 * @param string $mimeType
182
-	 * @return ISimpleFile
183
-	 * @throws NotFoundException
184
-	 * @throws \InvalidArgumentException if the preview would be invalid (in case the original image is invalid)
185
-	 * @since 11.0.0 - \InvalidArgumentException was added in 12.0.0
186
-	 */
187
-	public function getPreview(File $file, $width = -1, $height = -1, $crop = false, $mode = IPreview::MODE_FILL, $mimeType = null) {
188
-		return $this->getGenerator()->getPreview($file, $width, $height, $crop, $mode, $mimeType);
189
-	}
190
-
191
-	/**
192
-	 * Generates previews of a file
193
-	 *
194
-	 * @param File $file
195
-	 * @param array $specifications
196
-	 * @param string $mimeType
197
-	 * @return ISimpleFile the last preview that was generated
198
-	 * @throws NotFoundException
199
-	 * @throws \InvalidArgumentException if the preview would be invalid (in case the original image is invalid)
200
-	 * @since 19.0.0
201
-	 */
202
-	public function generatePreviews(File $file, array $specifications, $mimeType = null) {
203
-		return $this->getGenerator()->generatePreviews($file, $specifications, $mimeType);
204
-	}
205
-
206
-	/**
207
-	 * returns true if the passed mime type is supported
208
-	 *
209
-	 * @param string $mimeType
210
-	 * @return boolean
211
-	 */
212
-	public function isMimeSupported($mimeType = '*') {
213
-		if (!$this->config->getSystemValue('enable_previews', true)) {
214
-			return false;
215
-		}
216
-
217
-		if (isset($this->mimeTypeSupportMap[$mimeType])) {
218
-			return $this->mimeTypeSupportMap[$mimeType];
219
-		}
220
-
221
-		$this->registerCoreProviders();
222
-		$providerMimeTypes = array_keys($this->providers);
223
-		foreach ($providerMimeTypes as $supportedMimeType) {
224
-			if (preg_match($supportedMimeType, $mimeType)) {
225
-				$this->mimeTypeSupportMap[$mimeType] = true;
226
-				return true;
227
-			}
228
-		}
229
-		$this->mimeTypeSupportMap[$mimeType] = false;
230
-		return false;
231
-	}
232
-
233
-	/**
234
-	 * Check if a preview can be generated for a file
235
-	 *
236
-	 * @param \OCP\Files\FileInfo $file
237
-	 * @return bool
238
-	 */
239
-	public function isAvailable(\OCP\Files\FileInfo $file) {
240
-		if (!$this->config->getSystemValue('enable_previews', true)) {
241
-			return false;
242
-		}
243
-
244
-		$this->registerCoreProviders();
245
-		if (!$this->isMimeSupported($file->getMimetype())) {
246
-			return false;
247
-		}
248
-
249
-		$mount = $file->getMountPoint();
250
-		if ($mount and !$mount->getOption('previews', true)) {
251
-			return false;
252
-		}
253
-
254
-		foreach ($this->providers as $supportedMimeType => $providers) {
255
-			if (preg_match($supportedMimeType, $file->getMimetype())) {
256
-				foreach ($providers as $providerClosure) {
257
-					$provider = $this->helper->getProvider($providerClosure);
258
-					if (!($provider instanceof IProviderV2)) {
259
-						continue;
260
-					}
261
-
262
-					/** @var $provider IProvider */
263
-					if ($provider->isAvailable($file)) {
264
-						return true;
265
-					}
266
-				}
267
-			}
268
-		}
269
-		return false;
270
-	}
271
-
272
-	/**
273
-	 * List of enabled default providers
274
-	 *
275
-	 * The following providers are enabled by default:
276
-	 *  - OC\Preview\PNG
277
-	 *  - OC\Preview\JPEG
278
-	 *  - OC\Preview\GIF
279
-	 *  - OC\Preview\BMP
280
-	 *  - OC\Preview\HEIC
281
-	 *  - OC\Preview\XBitmap
282
-	 *  - OC\Preview\MarkDown
283
-	 *  - OC\Preview\MP3
284
-	 *  - OC\Preview\TXT
285
-	 *
286
-	 * The following providers are disabled by default due to performance or privacy concerns:
287
-	 *  - OC\Preview\Font
288
-	 *  - OC\Preview\Illustrator
289
-	 *  - OC\Preview\Movie
290
-	 *  - OC\Preview\MSOfficeDoc
291
-	 *  - OC\Preview\MSOffice2003
292
-	 *  - OC\Preview\MSOffice2007
293
-	 *  - OC\Preview\OpenDocument
294
-	 *  - OC\Preview\PDF
295
-	 *  - OC\Preview\Photoshop
296
-	 *  - OC\Preview\Postscript
297
-	 *  - OC\Preview\StarOffice
298
-	 *  - OC\Preview\SVG
299
-	 *  - OC\Preview\TIFF
300
-	 *
301
-	 * @return array
302
-	 */
303
-	protected function getEnabledDefaultProvider() {
304
-		if ($this->defaultProviders !== null) {
305
-			return $this->defaultProviders;
306
-		}
307
-
308
-		$imageProviders = [
309
-			Preview\PNG::class,
310
-			Preview\JPEG::class,
311
-			Preview\GIF::class,
312
-			Preview\BMP::class,
313
-			Preview\HEIC::class,
314
-			Preview\XBitmap::class,
315
-			Preview\Krita::class,
316
-		];
317
-
318
-		$this->defaultProviders = $this->config->getSystemValue('enabledPreviewProviders', array_merge([
319
-			Preview\MarkDown::class,
320
-			Preview\MP3::class,
321
-			Preview\TXT::class,
322
-			Preview\OpenDocument::class,
323
-		], $imageProviders));
324
-
325
-		if (in_array(Preview\Image::class, $this->defaultProviders)) {
326
-			$this->defaultProviders = array_merge($this->defaultProviders, $imageProviders);
327
-		}
328
-		$this->defaultProviders = array_unique($this->defaultProviders);
329
-		return $this->defaultProviders;
330
-	}
331
-
332
-	/**
333
-	 * Register the default providers (if enabled)
334
-	 *
335
-	 * @param string $class
336
-	 * @param string $mimeType
337
-	 */
338
-	protected function registerCoreProvider($class, $mimeType, $options = []) {
339
-		if (in_array(trim($class, '\\'), $this->getEnabledDefaultProvider())) {
340
-			$this->registerProvider($mimeType, function () use ($class, $options) {
341
-				return new $class($options);
342
-			});
343
-		}
344
-	}
345
-
346
-	/**
347
-	 * Register the default providers (if enabled)
348
-	 */
349
-	protected function registerCoreProviders() {
350
-		if ($this->registeredCoreProviders) {
351
-			return;
352
-		}
353
-		$this->registeredCoreProviders = true;
354
-
355
-		$this->registerCoreProvider(Preview\TXT::class, '/text\/plain/');
356
-		$this->registerCoreProvider(Preview\MarkDown::class, '/text\/(x-)?markdown/');
357
-		$this->registerCoreProvider(Preview\PNG::class, '/image\/png/');
358
-		$this->registerCoreProvider(Preview\JPEG::class, '/image\/jpeg/');
359
-		$this->registerCoreProvider(Preview\GIF::class, '/image\/gif/');
360
-		$this->registerCoreProvider(Preview\BMP::class, '/image\/bmp/');
361
-		$this->registerCoreProvider(Preview\XBitmap::class, '/image\/x-xbitmap/');
362
-		$this->registerCoreProvider(Preview\Krita::class, '/application\/x-krita/');
363
-		$this->registerCoreProvider(Preview\MP3::class, '/audio\/mpeg/');
364
-		$this->registerCoreProvider(Preview\OpenDocument::class, '/application\/vnd.oasis.opendocument.*/');
365
-
366
-		// SVG, Office and Bitmap require imagick
367
-		if (extension_loaded('imagick')) {
368
-			$checkImagick = new \Imagick();
369
-
370
-			$imagickProviders = [
371
-				'SVG'	=> ['mimetype' => '/image\/svg\+xml/', 'class' => Preview\SVG::class],
372
-				'TIFF'	=> ['mimetype' => '/image\/tiff/', 'class' => Preview\TIFF::class],
373
-				'PDF'	=> ['mimetype' => '/application\/pdf/', 'class' => Preview\PDF::class],
374
-				'AI'	=> ['mimetype' => '/application\/illustrator/', 'class' => Preview\Illustrator::class],
375
-				'PSD'	=> ['mimetype' => '/application\/x-photoshop/', 'class' => Preview\Photoshop::class],
376
-				'EPS'	=> ['mimetype' => '/application\/postscript/', 'class' => Preview\Postscript::class],
377
-				'TTF'	=> ['mimetype' => '/application\/(?:font-sfnt|x-font$)/', 'class' => Preview\Font::class],
378
-				'HEIC'  => ['mimetype' => '/image\/hei(f|c)/', 'class' => Preview\HEIC::class],
379
-			];
380
-
381
-			foreach ($imagickProviders as $queryFormat => $provider) {
382
-				$class = $provider['class'];
383
-				if (!in_array(trim($class, '\\'), $this->getEnabledDefaultProvider())) {
384
-					continue;
385
-				}
386
-
387
-				if (count($checkImagick->queryFormats($queryFormat)) === 1) {
388
-					$this->registerCoreProvider($class, $provider['mimetype']);
389
-				}
390
-			}
391
-
392
-			if (count($checkImagick->queryFormats('PDF')) === 1) {
393
-				if (\OC_Helper::is_function_enabled('shell_exec')) {
394
-					$officeFound = is_string($this->config->getSystemValue('preview_libreoffice_path', null));
395
-
396
-					if (!$officeFound) {
397
-						//let's see if there is libreoffice or openoffice on this machine
398
-						$whichLibreOffice = shell_exec('command -v libreoffice');
399
-						$officeFound = !empty($whichLibreOffice);
400
-						if (!$officeFound) {
401
-							$whichOpenOffice = shell_exec('command -v openoffice');
402
-							$officeFound = !empty($whichOpenOffice);
403
-						}
404
-					}
405
-
406
-					if ($officeFound) {
407
-						$this->registerCoreProvider(Preview\MSOfficeDoc::class, '/application\/msword/');
408
-						$this->registerCoreProvider(Preview\MSOffice2003::class, '/application\/vnd.ms-.*/');
409
-						$this->registerCoreProvider(Preview\MSOffice2007::class, '/application\/vnd.openxmlformats-officedocument.*/');
410
-						$this->registerCoreProvider(Preview\OpenDocument::class, '/application\/vnd.oasis.opendocument.*/');
411
-						$this->registerCoreProvider(Preview\StarOffice::class, '/application\/vnd.sun.xml.*/');
412
-					}
413
-				}
414
-			}
415
-		}
416
-
417
-		// Video requires avconv or ffmpeg
418
-		if (in_array(Preview\Movie::class, $this->getEnabledDefaultProvider())) {
419
-			$avconvBinary = \OC_Helper::findBinaryPath('avconv');
420
-			$ffmpegBinary = $avconvBinary ? null : \OC_Helper::findBinaryPath('ffmpeg');
421
-
422
-			if ($avconvBinary || $ffmpegBinary) {
423
-				// FIXME // a bit hacky but didn't want to use subclasses
424
-				\OC\Preview\Movie::$avconvBinary = $avconvBinary;
425
-				\OC\Preview\Movie::$ffmpegBinary = $ffmpegBinary;
426
-
427
-				$this->registerCoreProvider(Preview\Movie::class, '/video\/.*/');
428
-			}
429
-		}
430
-	}
60
+    /** @var GeneratorHelper */
61
+    private $helper;
62
+
63
+    /** @var bool */
64
+    protected $providerListDirty = false;
65
+
66
+    /** @var bool */
67
+    protected $registeredCoreProviders = false;
68
+
69
+    /** @var array */
70
+    protected $providers = [];
71
+
72
+    /** @var array mime type => support status */
73
+    protected $mimeTypeSupportMap = [];
74
+
75
+    /** @var array */
76
+    protected $defaultProviders;
77
+
78
+    /** @var string */
79
+    protected $userId;
80
+
81
+    /**
82
+     * PreviewManager constructor.
83
+     *
84
+     * @param IConfig $config
85
+     * @param IRootFolder $rootFolder
86
+     * @param IAppData $appData
87
+     * @param EventDispatcherInterface $eventDispatcher
88
+     * @param string $userId
89
+     */
90
+    public function __construct(IConfig $config,
91
+                                IRootFolder $rootFolder,
92
+                                IAppData $appData,
93
+                                EventDispatcherInterface $eventDispatcher,
94
+                                GeneratorHelper $helper,
95
+                                $userId) {
96
+        $this->config = $config;
97
+        $this->rootFolder = $rootFolder;
98
+        $this->appData = $appData;
99
+        $this->eventDispatcher = $eventDispatcher;
100
+        $this->helper = $helper;
101
+        $this->userId = $userId;
102
+    }
103
+
104
+    /**
105
+     * In order to improve lazy loading a closure can be registered which will be
106
+     * called in case preview providers are actually requested
107
+     *
108
+     * $callable has to return an instance of \OCP\Preview\IProvider or \OCP\Preview\IProviderV2
109
+     *
110
+     * @param string $mimeTypeRegex Regex with the mime types that are supported by this provider
111
+     * @param \Closure $callable
112
+     * @return void
113
+     */
114
+    public function registerProvider($mimeTypeRegex, \Closure $callable) {
115
+        if (!$this->config->getSystemValue('enable_previews', true)) {
116
+            return;
117
+        }
118
+
119
+        if (!isset($this->providers[$mimeTypeRegex])) {
120
+            $this->providers[$mimeTypeRegex] = [];
121
+        }
122
+        $this->providers[$mimeTypeRegex][] = $callable;
123
+        $this->providerListDirty = true;
124
+    }
125
+
126
+    /**
127
+     * Get all providers
128
+     * @return array
129
+     */
130
+    public function getProviders() {
131
+        if (!$this->config->getSystemValue('enable_previews', true)) {
132
+            return [];
133
+        }
134
+
135
+        $this->registerCoreProviders();
136
+        if ($this->providerListDirty) {
137
+            $keys = array_map('strlen', array_keys($this->providers));
138
+            array_multisort($keys, SORT_DESC, $this->providers);
139
+            $this->providerListDirty = false;
140
+        }
141
+
142
+        return $this->providers;
143
+    }
144
+
145
+    /**
146
+     * Does the manager have any providers
147
+     * @return bool
148
+     */
149
+    public function hasProviders() {
150
+        $this->registerCoreProviders();
151
+        return !empty($this->providers);
152
+    }
153
+
154
+    private function getGenerator(): Generator {
155
+        if ($this->generator === null) {
156
+            $this->generator = new Generator(
157
+                $this->config,
158
+                $this,
159
+                $this->appData,
160
+                new GeneratorHelper(
161
+                    $this->rootFolder,
162
+                    $this->config
163
+                ),
164
+                $this->eventDispatcher
165
+            );
166
+        }
167
+        return $this->generator;
168
+    }
169
+
170
+    /**
171
+     * Returns a preview of a file
172
+     *
173
+     * The cache is searched first and if nothing usable was found then a preview is
174
+     * generated by one of the providers
175
+     *
176
+     * @param File $file
177
+     * @param int $width
178
+     * @param int $height
179
+     * @param bool $crop
180
+     * @param string $mode
181
+     * @param string $mimeType
182
+     * @return ISimpleFile
183
+     * @throws NotFoundException
184
+     * @throws \InvalidArgumentException if the preview would be invalid (in case the original image is invalid)
185
+     * @since 11.0.0 - \InvalidArgumentException was added in 12.0.0
186
+     */
187
+    public function getPreview(File $file, $width = -1, $height = -1, $crop = false, $mode = IPreview::MODE_FILL, $mimeType = null) {
188
+        return $this->getGenerator()->getPreview($file, $width, $height, $crop, $mode, $mimeType);
189
+    }
190
+
191
+    /**
192
+     * Generates previews of a file
193
+     *
194
+     * @param File $file
195
+     * @param array $specifications
196
+     * @param string $mimeType
197
+     * @return ISimpleFile the last preview that was generated
198
+     * @throws NotFoundException
199
+     * @throws \InvalidArgumentException if the preview would be invalid (in case the original image is invalid)
200
+     * @since 19.0.0
201
+     */
202
+    public function generatePreviews(File $file, array $specifications, $mimeType = null) {
203
+        return $this->getGenerator()->generatePreviews($file, $specifications, $mimeType);
204
+    }
205
+
206
+    /**
207
+     * returns true if the passed mime type is supported
208
+     *
209
+     * @param string $mimeType
210
+     * @return boolean
211
+     */
212
+    public function isMimeSupported($mimeType = '*') {
213
+        if (!$this->config->getSystemValue('enable_previews', true)) {
214
+            return false;
215
+        }
216
+
217
+        if (isset($this->mimeTypeSupportMap[$mimeType])) {
218
+            return $this->mimeTypeSupportMap[$mimeType];
219
+        }
220
+
221
+        $this->registerCoreProviders();
222
+        $providerMimeTypes = array_keys($this->providers);
223
+        foreach ($providerMimeTypes as $supportedMimeType) {
224
+            if (preg_match($supportedMimeType, $mimeType)) {
225
+                $this->mimeTypeSupportMap[$mimeType] = true;
226
+                return true;
227
+            }
228
+        }
229
+        $this->mimeTypeSupportMap[$mimeType] = false;
230
+        return false;
231
+    }
232
+
233
+    /**
234
+     * Check if a preview can be generated for a file
235
+     *
236
+     * @param \OCP\Files\FileInfo $file
237
+     * @return bool
238
+     */
239
+    public function isAvailable(\OCP\Files\FileInfo $file) {
240
+        if (!$this->config->getSystemValue('enable_previews', true)) {
241
+            return false;
242
+        }
243
+
244
+        $this->registerCoreProviders();
245
+        if (!$this->isMimeSupported($file->getMimetype())) {
246
+            return false;
247
+        }
248
+
249
+        $mount = $file->getMountPoint();
250
+        if ($mount and !$mount->getOption('previews', true)) {
251
+            return false;
252
+        }
253
+
254
+        foreach ($this->providers as $supportedMimeType => $providers) {
255
+            if (preg_match($supportedMimeType, $file->getMimetype())) {
256
+                foreach ($providers as $providerClosure) {
257
+                    $provider = $this->helper->getProvider($providerClosure);
258
+                    if (!($provider instanceof IProviderV2)) {
259
+                        continue;
260
+                    }
261
+
262
+                    /** @var $provider IProvider */
263
+                    if ($provider->isAvailable($file)) {
264
+                        return true;
265
+                    }
266
+                }
267
+            }
268
+        }
269
+        return false;
270
+    }
271
+
272
+    /**
273
+     * List of enabled default providers
274
+     *
275
+     * The following providers are enabled by default:
276
+     *  - OC\Preview\PNG
277
+     *  - OC\Preview\JPEG
278
+     *  - OC\Preview\GIF
279
+     *  - OC\Preview\BMP
280
+     *  - OC\Preview\HEIC
281
+     *  - OC\Preview\XBitmap
282
+     *  - OC\Preview\MarkDown
283
+     *  - OC\Preview\MP3
284
+     *  - OC\Preview\TXT
285
+     *
286
+     * The following providers are disabled by default due to performance or privacy concerns:
287
+     *  - OC\Preview\Font
288
+     *  - OC\Preview\Illustrator
289
+     *  - OC\Preview\Movie
290
+     *  - OC\Preview\MSOfficeDoc
291
+     *  - OC\Preview\MSOffice2003
292
+     *  - OC\Preview\MSOffice2007
293
+     *  - OC\Preview\OpenDocument
294
+     *  - OC\Preview\PDF
295
+     *  - OC\Preview\Photoshop
296
+     *  - OC\Preview\Postscript
297
+     *  - OC\Preview\StarOffice
298
+     *  - OC\Preview\SVG
299
+     *  - OC\Preview\TIFF
300
+     *
301
+     * @return array
302
+     */
303
+    protected function getEnabledDefaultProvider() {
304
+        if ($this->defaultProviders !== null) {
305
+            return $this->defaultProviders;
306
+        }
307
+
308
+        $imageProviders = [
309
+            Preview\PNG::class,
310
+            Preview\JPEG::class,
311
+            Preview\GIF::class,
312
+            Preview\BMP::class,
313
+            Preview\HEIC::class,
314
+            Preview\XBitmap::class,
315
+            Preview\Krita::class,
316
+        ];
317
+
318
+        $this->defaultProviders = $this->config->getSystemValue('enabledPreviewProviders', array_merge([
319
+            Preview\MarkDown::class,
320
+            Preview\MP3::class,
321
+            Preview\TXT::class,
322
+            Preview\OpenDocument::class,
323
+        ], $imageProviders));
324
+
325
+        if (in_array(Preview\Image::class, $this->defaultProviders)) {
326
+            $this->defaultProviders = array_merge($this->defaultProviders, $imageProviders);
327
+        }
328
+        $this->defaultProviders = array_unique($this->defaultProviders);
329
+        return $this->defaultProviders;
330
+    }
331
+
332
+    /**
333
+     * Register the default providers (if enabled)
334
+     *
335
+     * @param string $class
336
+     * @param string $mimeType
337
+     */
338
+    protected function registerCoreProvider($class, $mimeType, $options = []) {
339
+        if (in_array(trim($class, '\\'), $this->getEnabledDefaultProvider())) {
340
+            $this->registerProvider($mimeType, function () use ($class, $options) {
341
+                return new $class($options);
342
+            });
343
+        }
344
+    }
345
+
346
+    /**
347
+     * Register the default providers (if enabled)
348
+     */
349
+    protected function registerCoreProviders() {
350
+        if ($this->registeredCoreProviders) {
351
+            return;
352
+        }
353
+        $this->registeredCoreProviders = true;
354
+
355
+        $this->registerCoreProvider(Preview\TXT::class, '/text\/plain/');
356
+        $this->registerCoreProvider(Preview\MarkDown::class, '/text\/(x-)?markdown/');
357
+        $this->registerCoreProvider(Preview\PNG::class, '/image\/png/');
358
+        $this->registerCoreProvider(Preview\JPEG::class, '/image\/jpeg/');
359
+        $this->registerCoreProvider(Preview\GIF::class, '/image\/gif/');
360
+        $this->registerCoreProvider(Preview\BMP::class, '/image\/bmp/');
361
+        $this->registerCoreProvider(Preview\XBitmap::class, '/image\/x-xbitmap/');
362
+        $this->registerCoreProvider(Preview\Krita::class, '/application\/x-krita/');
363
+        $this->registerCoreProvider(Preview\MP3::class, '/audio\/mpeg/');
364
+        $this->registerCoreProvider(Preview\OpenDocument::class, '/application\/vnd.oasis.opendocument.*/');
365
+
366
+        // SVG, Office and Bitmap require imagick
367
+        if (extension_loaded('imagick')) {
368
+            $checkImagick = new \Imagick();
369
+
370
+            $imagickProviders = [
371
+                'SVG'	=> ['mimetype' => '/image\/svg\+xml/', 'class' => Preview\SVG::class],
372
+                'TIFF'	=> ['mimetype' => '/image\/tiff/', 'class' => Preview\TIFF::class],
373
+                'PDF'	=> ['mimetype' => '/application\/pdf/', 'class' => Preview\PDF::class],
374
+                'AI'	=> ['mimetype' => '/application\/illustrator/', 'class' => Preview\Illustrator::class],
375
+                'PSD'	=> ['mimetype' => '/application\/x-photoshop/', 'class' => Preview\Photoshop::class],
376
+                'EPS'	=> ['mimetype' => '/application\/postscript/', 'class' => Preview\Postscript::class],
377
+                'TTF'	=> ['mimetype' => '/application\/(?:font-sfnt|x-font$)/', 'class' => Preview\Font::class],
378
+                'HEIC'  => ['mimetype' => '/image\/hei(f|c)/', 'class' => Preview\HEIC::class],
379
+            ];
380
+
381
+            foreach ($imagickProviders as $queryFormat => $provider) {
382
+                $class = $provider['class'];
383
+                if (!in_array(trim($class, '\\'), $this->getEnabledDefaultProvider())) {
384
+                    continue;
385
+                }
386
+
387
+                if (count($checkImagick->queryFormats($queryFormat)) === 1) {
388
+                    $this->registerCoreProvider($class, $provider['mimetype']);
389
+                }
390
+            }
391
+
392
+            if (count($checkImagick->queryFormats('PDF')) === 1) {
393
+                if (\OC_Helper::is_function_enabled('shell_exec')) {
394
+                    $officeFound = is_string($this->config->getSystemValue('preview_libreoffice_path', null));
395
+
396
+                    if (!$officeFound) {
397
+                        //let's see if there is libreoffice or openoffice on this machine
398
+                        $whichLibreOffice = shell_exec('command -v libreoffice');
399
+                        $officeFound = !empty($whichLibreOffice);
400
+                        if (!$officeFound) {
401
+                            $whichOpenOffice = shell_exec('command -v openoffice');
402
+                            $officeFound = !empty($whichOpenOffice);
403
+                        }
404
+                    }
405
+
406
+                    if ($officeFound) {
407
+                        $this->registerCoreProvider(Preview\MSOfficeDoc::class, '/application\/msword/');
408
+                        $this->registerCoreProvider(Preview\MSOffice2003::class, '/application\/vnd.ms-.*/');
409
+                        $this->registerCoreProvider(Preview\MSOffice2007::class, '/application\/vnd.openxmlformats-officedocument.*/');
410
+                        $this->registerCoreProvider(Preview\OpenDocument::class, '/application\/vnd.oasis.opendocument.*/');
411
+                        $this->registerCoreProvider(Preview\StarOffice::class, '/application\/vnd.sun.xml.*/');
412
+                    }
413
+                }
414
+            }
415
+        }
416
+
417
+        // Video requires avconv or ffmpeg
418
+        if (in_array(Preview\Movie::class, $this->getEnabledDefaultProvider())) {
419
+            $avconvBinary = \OC_Helper::findBinaryPath('avconv');
420
+            $ffmpegBinary = $avconvBinary ? null : \OC_Helper::findBinaryPath('ffmpeg');
421
+
422
+            if ($avconvBinary || $ffmpegBinary) {
423
+                // FIXME // a bit hacky but didn't want to use subclasses
424
+                \OC\Preview\Movie::$avconvBinary = $avconvBinary;
425
+                \OC\Preview\Movie::$ffmpegBinary = $ffmpegBinary;
426
+
427
+                $this->registerCoreProvider(Preview\Movie::class, '/video\/.*/');
428
+            }
429
+        }
430
+    }
431 431
 }
Please login to merge, or discard this patch.