‪TYPO3CMS  ‪main
AbstractTask.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of the TYPO3 CMS project.
5  *
6  * It is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU General Public License, either version 2
8  * of the License, or any later version.
9  *
10  * For the full copyright and license information, please read the
11  * LICENSE.txt file that was distributed with this source code.
12  *
13  * The TYPO3 project - inspiring people to share!
14  */
15 
17 
22 
30 abstract class ‪AbstractTask implements ‪TaskInterface
31 {
35  protected ‪$checksumData = [];
36 
40  protected ‪$targetFile;
41 
45  protected ‪$sourceFile;
46 
50  protected ‪$configuration;
51 
55  protected ‪$type;
56 
60  protected ‪$name;
61 
65  protected ‪$executed = false;
66 
70  protected ‪$successful;
71 
73  {
74  $this->targetFile = ‪$targetFile;
75  $this->sourceFile = ‪$targetFile->‪getOriginalFile();
76  $this->configuration = ‪$configuration;
77  }
78 
86  protected function ‪getChecksumData()
87  {
88  return [
89  $this->‪getSourceFile()->‪getUid(),
90  $this->‪getType() . '.' . $this->‪getName() . $this->‪getSourceFile()->‪getModificationTime(),
91  (new ‪ConfigurationService())->serialize($this->configuration),
92  ];
93  }
94 
100  public function ‪getConfigurationChecksum()
101  {
102  return substr((string)md5(implode('|', $this->‪getChecksumData())), 0, 10);
103  }
104 
110  public function ‪getTargetFilename()
111  {
112  return $this->targetFile->getNameWithoutExtension()
113  . '_' . $this->‪getConfigurationChecksum()
114  . '.' . $this->‪getTargetFileExtension();
115  }
116 
123  public function ‪getTargetFileExtension()
124  {
125  return $this->targetFile->getExtension();
126  }
127 
133  public function ‪getName()
134  {
136  }
137 
143  public function ‪getType()
144  {
145  return ‪$this->type;
146  }
147 
151  public function ‪getTargetFile()
152  {
153  return ‪$this->targetFile;
154  }
155 
157  {
158  $this->targetFile = ‪$targetFile;
159  }
160 
164  public function ‪getSourceFile()
165  {
166  return ‪$this->sourceFile;
167  }
168 
170  {
171  $this->sourceFile = ‪$sourceFile;
172  }
173 
177  public function ‪getConfiguration()
178  {
180  }
181 
188  abstract protected function ‪isValidConfiguration(array ‪$configuration);
189 
195  public function ‪isExecuted()
196  {
197  return ‪$this->executed;
198  }
199 
206  public function ‪setExecuted(‪$successful)
207  {
208  $this->executed = true;
209  $this->successful = ‪$successful;
210  }
211 
218  public function ‪isSuccessful()
219  {
220  if (!$this->executed) {
221  throw new \LogicException('Task has not been executed; cannot determine success.', 1352549235);
222  }
223 
224  return ‪$this->successful;
225  }
226 }
‪TYPO3\CMS\Core\Resource\ProcessedFile\getOriginalFile
‪File getOriginalFile()
Definition: ProcessedFile.php:301
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\getName
‪string getName()
Definition: AbstractTask.php:125
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\$targetFile
‪Resource ProcessedFile $targetFile
Definition: AbstractTask.php:38
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\$checksumData
‪array $checksumData
Definition: AbstractTask.php:34
‪TYPO3\CMS\Core\Resource\Processing\TaskInterface
Definition: TaskInterface.php:33
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\getTargetFileExtension
‪string getTargetFileExtension()
Definition: AbstractTask.php:115
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\setExecuted
‪setExecuted($successful)
Definition: AbstractTask.php:198
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\getChecksumData
‪array getChecksumData()
Definition: AbstractTask.php:78
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\$name
‪string $name
Definition: AbstractTask.php:54
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\$successful
‪bool $successful
Definition: AbstractTask.php:62
‪TYPO3\CMS\Core\Resource\Processing
Definition: AbstractGraphicalTask.php:16
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\getTargetFilename
‪string getTargetFilename()
Definition: AbstractTask.php:102
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\isExecuted
‪bool isExecuted()
Definition: AbstractTask.php:187
‪TYPO3\CMS\Core\Resource\File
Definition: File.php:26
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\getTargetFile
‪Resource ProcessedFile getTargetFile()
Definition: AbstractTask.php:143
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\$sourceFile
‪Resource File $sourceFile
Definition: AbstractTask.php:42
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\getSourceFile
‪Resource File getSourceFile()
Definition: AbstractTask.php:156
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\getConfigurationChecksum
‪string getConfigurationChecksum()
Definition: AbstractTask.php:92
‪TYPO3\CMS\Core\Resource
Definition: generateMimeTypes.php:52
‪TYPO3\CMS\Core\Resource\ProcessedFile
Definition: ProcessedFile.php:47
‪TYPO3\CMS\Core\Resource\AbstractFile\getUid
‪return MathUtility::canBeInterpretedAsInteger($size) ?(int) $size int getUid()
Definition: AbstractFile.php:188
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\$configuration
‪array $configuration
Definition: AbstractTask.php:46
‪TYPO3\CMS\Core\Resource\Service\ConfigurationService
Definition: ConfigurationService.php:34
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\getType
‪string getType()
Definition: AbstractTask.php:135
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask
Definition: AbstractTask.php:31
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\setTargetFile
‪setTargetFile(ProcessedFile $targetFile)
Definition: AbstractTask.php:148
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\isValidConfiguration
‪bool isValidConfiguration(array $configuration)
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\__construct
‪__construct(ProcessedFile $targetFile, array $configuration)
Definition: AbstractTask.php:64
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\isSuccessful
‪bool isSuccessful()
Definition: AbstractTask.php:210
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\$type
‪string $type
Definition: AbstractTask.php:50
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\setSourceFile
‪setSourceFile(File $sourceFile)
Definition: AbstractTask.php:161
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\$executed
‪bool $executed
Definition: AbstractTask.php:58
‪TYPO3\CMS\Core\Resource\AbstractFile\getModificationTime
‪getModificationTime()
Definition: AbstractFile.php:225
‪TYPO3\CMS\Core\Resource\Processing\AbstractTask\getConfiguration
‪array getConfiguration()
Definition: AbstractTask.php:169