1 | <?php |
||
2 | |||
3 | namespace Jabe; |
||
4 | |||
5 | use Doctrine\DBAL\DriverManager; |
||
6 | use Doctrine\ORM\EntityManager; |
||
7 | use Jabe\Impl\{ |
||
8 | BootstrapEngineCommand, |
||
9 | HistoryLevelSetupCommand, |
||
10 | SchemaOperationsProcessEngineBuild |
||
11 | }; |
||
12 | use Jabe\Impl\Persistence\Entity\JobEntity; |
||
13 | use Jabe\Impl\Cfg\StandaloneProcessEngineConfiguration; |
||
14 | use Jabe\Variable\Type\ValueTypeResolverInterface; |
||
15 | use Jabe\Identity\PasswordPolicyInterface; |
||
16 | use Jabe\Runtime\DeserializationTypeValidatorInterface; |
||
17 | use Jabe\Impl\Telemetry\TelemetryRegistry; |
||
18 | |||
19 | abstract class ProcessEngineConfiguration |
||
20 | { |
||
21 | /** |
||
22 | * Checks the version of the DB schema against the library when |
||
23 | * the process engine is being created and throws an exception |
||
24 | * if the versions don't match. |
||
25 | */ |
||
26 | public const DB_SCHEMA_UPDATE_FALSE = "false"; |
||
27 | |||
28 | /** |
||
29 | * Creates the schema when the process engine is being created and |
||
30 | * drops the schema when the process engine is being closed. |
||
31 | */ |
||
32 | public const DB_SCHEMA_UPDATE_CREATE_DROP = "create-drop"; |
||
33 | |||
34 | /** |
||
35 | * Upon building of the process engine, a check is performed and |
||
36 | * an update of the schema is performed if it is necessary. |
||
37 | */ |
||
38 | public const DB_SCHEMA_UPDATE_TRUE = "true"; |
||
39 | |||
40 | /** |
||
41 | * Value for {@link #setHistory(String)} to ensure that no history is being recorded. |
||
42 | */ |
||
43 | public const HISTORY_NONE = "none"; |
||
44 | /** |
||
45 | * Value for {@link #setHistory(String)} to ensure that only historic process instances and |
||
46 | * historic activity instances are being recorded. |
||
47 | * This means no details for those entities. |
||
48 | */ |
||
49 | public const HISTORY_ACTIVITY = "activity"; |
||
50 | |||
51 | /** |
||
52 | * Value for {@link #setHistory(String)} to ensure that only historic process instances, |
||
53 | * historic activity instances and submitted form property values are being recorded. |
||
54 | */ |
||
55 | public const HISTORY_AUDIT = "audit"; |
||
56 | /** |
||
57 | * Value for {@link #setHistory(String)} to ensure that all historic information is |
||
58 | * being recorded, including the variable updates. |
||
59 | */ |
||
60 | public const HISTORY_FULL = "full"; |
||
61 | |||
62 | /** |
||
63 | * Value for {@link #setHistory(String)}. Choosing auto causes the configuration to choose the level |
||
64 | * already present on the database. If none can be found, "audit" is taken. |
||
65 | */ |
||
66 | public const HISTORY_AUTO = "auto"; |
||
67 | |||
68 | /** |
||
69 | * The default history level that is used when no history level is configured |
||
70 | */ |
||
71 | public const HISTORY_DEFAULT = self::HISTORY_AUDIT; |
||
72 | |||
73 | /** |
||
74 | * History cleanup is performed based on end time. |
||
75 | */ |
||
76 | public const HISTORY_CLEANUP_STRATEGY_END_TIME_BASED = "endTimeBased"; |
||
77 | |||
78 | /** |
||
79 | * History cleanup is performed based on removal time. |
||
80 | */ |
||
81 | public const HISTORY_CLEANUP_STRATEGY_REMOVAL_TIME_BASED = "removalTimeBased"; |
||
82 | |||
83 | /** |
||
84 | * Removal time for historic entities is set on execution start. |
||
85 | */ |
||
86 | public const HISTORY_REMOVAL_TIME_STRATEGY_START = "start"; |
||
87 | |||
88 | /** |
||
89 | * Removal time for historic entities is set if execution has been ended. |
||
90 | */ |
||
91 | public const HISTORY_REMOVAL_TIME_STRATEGY_END = "end"; |
||
92 | |||
93 | /** |
||
94 | * Removal time for historic entities is not set. |
||
95 | */ |
||
96 | public const HISTORY_REMOVAL_TIME_STRATEGY_NONE = "none"; |
||
97 | |||
98 | /** |
||
99 | * Always enables check for {@link Authorization#AUTH_TYPE_REVOKE revoke} authorizations. |
||
100 | * This mode is equal to the < 7.5 behavior. |
||
101 | *<p /> |
||
102 | * *NOTE:* Checking revoke authorizations is very expensive for resources with a high potential |
||
103 | * cardinality like tasks or process instances and can render authorized access to the process engine |
||
104 | * effectively unusable on most databases. You are therefore strongly discouraged from using this mode. |
||
105 | * |
||
106 | */ |
||
107 | public const AUTHORIZATION_CHECK_REVOKE_ALWAYS = "always"; |
||
108 | |||
109 | /** |
||
110 | * Never checks for {@link Authorization#AUTH_TYPE_REVOKE revoke} authorizations. This mode |
||
111 | * has best performance effectively disables the use of Authorization#AUTH_TYPE_REVOKE. |
||
112 | * *Note*: It is strongly recommended to use this mode. |
||
113 | */ |
||
114 | public const AUTHORIZATION_CHECK_REVOKE_NEVER = "never"; |
||
115 | |||
116 | /** |
||
117 | * This mode only checks for {@link Authorization#AUTH_TYPE_REVOKE revoke} authorizations if at least |
||
118 | * one revoke authorization currently exits for the current user or one of the groups the user is a member |
||
119 | * of. To achieve this it is checked once per command whether potentially applicable revoke authorizations |
||
120 | * exist. Based on the outcome, the authorization check then uses revoke or not. |
||
121 | *<p /> |
||
122 | * *NOTE:* Checking revoke authorizations is very expensive for resources with a high potential |
||
123 | * cardinality like tasks or process instances and can render authorized access to the process engine |
||
124 | * effectively unusable on most databases. |
||
125 | */ |
||
126 | public const AUTHORIZATION_CHECK_REVOKE_AUTO = "auto"; |
||
127 | |||
128 | protected $processEngineName = ProcessEngines::NAME_DEFAULT; |
||
129 | protected $idBlockSize = 100; |
||
130 | protected $history = self::HISTORY_DEFAULT; |
||
131 | protected $jobExecutorActivate; |
||
132 | protected $jobExecutorDeploymentAware = false; |
||
133 | protected $jobExecutorPreferTimerJobs = false; |
||
134 | protected $jobExecutorAcquireByDueDate = false; |
||
135 | protected $jobExecutorAcquireByPriority = false; |
||
136 | |||
137 | protected $ensureJobDueDateNotNull = false; |
||
138 | protected $producePrioritizedJobs = true; |
||
139 | protected $producePrioritizedExternalTasks = true; |
||
140 | |||
141 | /** |
||
142 | * The flag will be used inside the method "JobManager#send()". It will be used to decide whether to notify the |
||
143 | * job executor that a new job has been created. It will be used for performance improvement, so that the new job could |
||
144 | * be executed in some situations immediately. |
||
145 | */ |
||
146 | protected $hintJobExecutor = true; |
||
147 | |||
148 | protected $mailServerHost; |
||
149 | protected $mailServerUsername; // by default no name and password are provided, which |
||
150 | protected $mailServerPassword; // means no authentication for mail server |
||
151 | protected $mailServerPort; |
||
152 | protected $useTLS; |
||
153 | protected $mailServerDefaultFrom; |
||
154 | |||
155 | protected $databaseType; |
||
156 | protected $databaseVendor; |
||
157 | protected $databaseVersion; |
||
158 | protected $databaseSchemaUpdate = self::DB_SCHEMA_UPDATE_FALSE; |
||
159 | //default Postgresql connection run inside the container |
||
160 | protected $dbDriver; |
||
161 | protected $dbHost; |
||
162 | protected $dbUsername; |
||
163 | protected $dbPassword; |
||
164 | protected $dbName; |
||
165 | protected $dbPort; |
||
166 | protected $dbMaxActiveConnections; |
||
167 | protected $dbMaxIdleConnections; |
||
168 | protected $dbMaxCheckoutTime; |
||
169 | protected $dbMaxWaitTime; |
||
170 | protected $dbPingEnabled = false; |
||
171 | protected $dbPingQuery = null; |
||
172 | protected $dbPingConnectionNotUsedFor; |
||
173 | protected $dataSource; |
||
174 | |||
175 | protected $schemaOperationsCommand; |
||
176 | protected $bootstrapCommand; |
||
177 | protected $historyLevelCommand; |
||
178 | protected $transactionsExternallyManaged = false; |
||
179 | /** the number of seconds the db driver will wait for a response from the database */ |
||
180 | protected $dbStatementTimeout; |
||
181 | protected $dbBatchProcessing = true; |
||
182 | |||
183 | protected $persistenceUnitName; |
||
184 | protected $entityManagerFactory; |
||
185 | protected $handleTransaction; |
||
186 | protected $closeEntityManager; |
||
187 | protected $defaultNumberOfRetries = JobEntity::DEFAULT_RETRIES; |
||
188 | |||
189 | protected $createIncidentOnFailedJobEnabled = true; |
||
190 | |||
191 | /** |
||
192 | * configuration of password policy |
||
193 | */ |
||
194 | protected $enablePasswordPolicy; |
||
195 | protected $passwordPolicy; |
||
196 | |||
197 | /** |
||
198 | * switch for controlling whether the process engine performs authorization checks. |
||
199 | * The default value is false. |
||
200 | */ |
||
201 | protected $authorizationEnabled = false; |
||
202 | |||
203 | /** |
||
204 | * Provides the default task permission for the user related to a task |
||
205 | * User can be related to a task in the following ways |
||
206 | * - Candidate user |
||
207 | * - Part of candidate group |
||
208 | * - Assignee |
||
209 | * - Owner |
||
210 | * The default value is UPDATE. |
||
211 | */ |
||
212 | protected $defaultUserPermissionNameForTask = "UPDATE"; |
||
213 | |||
214 | /** |
||
215 | * <p>The following flag <code>authorizationEnabledForCustomCode</code> will |
||
216 | * only be taken into account iff <code>authorizationEnabled</code> is set |
||
217 | * <code>true</code>.</p> |
||
218 | * |
||
219 | * <p>If the value of the flag <code>authorizationEnabledForCustomCode</code> |
||
220 | * is set <code>true</code> then an authorization check will be performed by |
||
221 | * executing commands inside custom code (e.g. inside JavaDelegate).</p> |
||
222 | * |
||
223 | * <p>The default value is <code>false</code>.</p> |
||
224 | * |
||
225 | */ |
||
226 | protected $authorizationEnabledForCustomCode = false; |
||
227 | |||
228 | /** |
||
229 | * If the value of this flag is set <code>true</code> then the process engine |
||
230 | * performs tenant checks to ensure that an authenticated user can only access |
||
231 | * data that belongs to one of his tenants. |
||
232 | */ |
||
233 | protected $tenantCheckEnabled = true; |
||
234 | |||
235 | protected $valueTypeResolver; |
||
236 | |||
237 | protected $authorizationCheckRevokes = self::AUTHORIZATION_CHECK_REVOKE_AUTO; |
||
238 | |||
239 | /** |
||
240 | * A parameter used for defining acceptable values for the User, Group |
||
241 | * and Tenant IDs. The pattern can be defined by using the standard |
||
242 | * Java Regular Expression syntax should be used. |
||
243 | * |
||
244 | * <p>By default only alphanumeric values (or 'admin') will be accepted.</p> |
||
245 | */ |
||
246 | protected $generalResourceWhitelistPattern = "[a-zA-Z0-9]+|admin"; |
||
247 | |||
248 | /** |
||
249 | * A parameter used for defining acceptable values for the User IDs. |
||
250 | * The pattern can be defined by using the standard Java Regular |
||
251 | * Expression syntax should be used. |
||
252 | * |
||
253 | * <p>If not defined, the general pattern is used. Only alphanumeric |
||
254 | * values (or 'camunda-admin') will be accepted.</p> |
||
255 | */ |
||
256 | protected $userResourceWhitelistPattern; |
||
257 | |||
258 | /** |
||
259 | * A parameter used for defining acceptable values for the Group IDs. |
||
260 | * The pattern can be defined by using the standard Java Regular |
||
261 | * Expression syntax should be used. |
||
262 | * |
||
263 | * <p>If not defined, the general pattern is used. Only alphanumeric |
||
264 | * values (or 'camunda-admin') will be accepted.</p> |
||
265 | */ |
||
266 | protected $groupResourceWhitelistPattern; |
||
267 | |||
268 | /** |
||
269 | * A parameter used for defining acceptable values for the Tenant IDs. |
||
270 | * The pattern can be defined by using the standard Java Regular |
||
271 | * Expression syntax should be used. |
||
272 | * |
||
273 | * <p>If not defined, the general pattern is used. Only alphanumeric |
||
274 | * values (or 'camunda-admin') will be accepted.</p> |
||
275 | */ |
||
276 | protected $tenantResourceWhitelistPattern; |
||
277 | |||
278 | /** |
||
279 | * If the value of this flag is set <code>true</code> then the process engine |
||
280 | * throws ProcessEngineException when no catching boundary event was |
||
281 | * defined for an error event. |
||
282 | * |
||
283 | * <p>The default value is <code>false</code>.</p> |
||
284 | */ |
||
285 | protected $enableExceptionsAfterUnhandledBpmnError = false; |
||
286 | |||
287 | /** |
||
288 | * If the value of this flag is set to <code>false</code>, OptimisticLockingExceptions |
||
289 | * are not skipped for UPDATE or DELETE operations applied to historic entities. |
||
290 | * |
||
291 | * <p>The default value is <code>true</code>.</p> |
||
292 | */ |
||
293 | protected $skipHistoryOptimisticLockingExceptions = true; |
||
294 | |||
295 | /** |
||
296 | * If the value of this flag is set to <code>true</code>, |
||
297 | * READ_INSTANCE_VARIABLE, |
||
298 | * READ_HISTORY_VARIABLE, or |
||
299 | * READ_TASK_VARIABLE on Process Definition resource, and |
||
300 | * READ_VARIABLE on Task resource |
||
301 | * READ_VARIABLE on Historic Task Instance resource |
||
302 | * will be required to fetch variables when the authorizations are enabled. |
||
303 | */ |
||
304 | protected $enforceSpecificVariablePermission = false; |
||
305 | |||
306 | /** |
||
307 | * Specifies which permissions will not be taken into account in the |
||
308 | * authorizations checks if authorization is enabled. |
||
309 | */ |
||
310 | protected $disabledPermissions = []; |
||
311 | |||
312 | /** |
||
313 | * If the value of this flag is set to <code>false</code> exceptions that occur |
||
314 | * during command execution will not be logged before re-thrown. This can prevent |
||
315 | * multiple logs of the same exception (e.g. exceptions that occur during job execution) |
||
316 | * but can also hide valuable debugging/rootcausing information. |
||
317 | */ |
||
318 | protected $enableCmdExceptionLogging = true; |
||
319 | |||
320 | /** |
||
321 | * If the value of this flag is set to <code>true</code> exceptions that occur |
||
322 | * during the execution of a job that still has retries left will not be logged. |
||
323 | * If the job does not have any retries left, the exception will still be logged |
||
324 | * on logging level WARN. |
||
325 | */ |
||
326 | protected $enableReducedJobExceptionLogging = false; |
||
327 | |||
328 | /** Specifies which classes are allowed for deserialization */ |
||
329 | protected $deserializationAllowedClasses; |
||
330 | |||
331 | /** Specifies which packages are allowed for deserialization */ |
||
332 | protected $deserializationAllowedPackages; |
||
333 | |||
334 | /** Validates types before deserialization */ |
||
335 | protected $deserializationTypeValidator; |
||
336 | |||
337 | /** Indicates whether type validation should be done before deserialization */ |
||
338 | protected $deserializationTypeValidationEnabled = false; |
||
339 | |||
340 | /** An unique installation identifier */ |
||
341 | protected $installationId; |
||
342 | |||
343 | protected $telemetryRegistry; |
||
344 | |||
345 | /** |
||
346 | * On failing activities we can skip output mapping. This might be helpful if output mapping uses variables that might not |
||
347 | * be available on failure (e.g. with external tasks or RPA tasks). |
||
348 | */ |
||
349 | protected $skipOutputMappingOnCanceledActivities = false; |
||
350 | |||
351 | protected function __construct() |
||
352 | { |
||
353 | $this->mailServerHost = getenv('MAIL_HOST', true); |
||
354 | $this->mailServerUsername = getenv('MAIL_USER', true); // by default no name and password are provided, which |
||
355 | $this->mailServerPassword = getenv('MAIL_PASSWORD', true); // means no authentication for mail server |
||
356 | $this->mailServerPort = getenv('MAIL_PORT', true); |
||
357 | $this->useTLS = json_decode(getenv('MAIL_USE_TLS', true)); |
||
358 | $this->mailServerDefaultFrom = getenv('MAIL_USE_FROM', true); |
||
359 | |||
360 | $this->dbDriver = getenv('DB_DRIVER', true); |
||
361 | $this->dbHost = getenv('DB_HOST', true); |
||
362 | $this->dbUsername = getenv('DB_USER', true); |
||
363 | $this->dbPassword = getenv('DB_PASSWORD', true); |
||
364 | $this->dbName = getenv('DB_NAME', true); |
||
365 | $this->dbPort = getenv('DB_PORT', true); |
||
366 | |||
367 | $this->schemaOperationsCommand = new SchemaOperationsProcessEngineBuild(); |
||
368 | $this->bootstrapCommand = new BootstrapEngineCommand(); |
||
369 | $this->historyLevelCommand = new HistoryLevelSetupCommand(); |
||
370 | } |
||
371 | |||
372 | abstract public function buildProcessEngine(); |
||
373 | |||
374 | public static function createStandaloneProcessEngineConfiguration(): ProcessEngineConfiguration |
||
375 | { |
||
376 | return new StandaloneProcessEngineConfiguration(); |
||
377 | } |
||
378 | |||
379 | // getters and setters ////////////////////////////////////////////////////// |
||
380 | |||
381 | public function getProcessEngineName(): string |
||
382 | { |
||
383 | return $this->processEngineName; |
||
384 | } |
||
385 | |||
386 | public function setProcessEngineName(string $processEngineName): ProcessEngineConfiguration |
||
387 | { |
||
388 | $this->processEngineName = $processEngineName; |
||
389 | return $this; |
||
390 | } |
||
391 | |||
392 | public function getIdBlockSize(): int |
||
393 | { |
||
394 | return $this->idBlockSize; |
||
395 | } |
||
396 | |||
397 | public function setIdBlockSize(int $idBlockSize): ProcessEngineConfiguration |
||
398 | { |
||
399 | $this->idBlockSize = $idBlockSize; |
||
400 | return $this; |
||
401 | } |
||
402 | |||
403 | public function getHistory(): string |
||
404 | { |
||
405 | return $this->history; |
||
406 | } |
||
407 | |||
408 | public function setHistory(string $history): ProcessEngineConfiguration |
||
409 | { |
||
410 | $this->history = $history; |
||
411 | return $this; |
||
412 | } |
||
413 | |||
414 | public function getMailServerHost(): string |
||
415 | { |
||
416 | return $this->mailServerHost; |
||
417 | } |
||
418 | |||
419 | public function setMailServerHost(string $mailServerHost): ProcessEngineConfiguration |
||
420 | { |
||
421 | $this->mailServerHost = $mailServerHost; |
||
422 | return $this; |
||
423 | } |
||
424 | |||
425 | public function getMailServerUsername(): string |
||
426 | { |
||
427 | return $this->mailServerUsername; |
||
428 | } |
||
429 | |||
430 | public function setMailServerUsername(string $mailServerUsername): ProcessEngineConfiguration |
||
431 | { |
||
432 | $this->mailServerUsername = $mailServerUsername; |
||
433 | return $this; |
||
434 | } |
||
435 | |||
436 | public function getMailServerPassword(): string |
||
437 | { |
||
438 | return $this->mailServerPassword; |
||
439 | } |
||
440 | |||
441 | public function setMailServerPassword(string $mailServerPassword): ProcessEngineConfiguration |
||
442 | { |
||
443 | $this->mailServerPassword = $mailServerPassword; |
||
444 | return $this; |
||
445 | } |
||
446 | |||
447 | public function getMailServerPort(): int |
||
448 | { |
||
449 | return $this->mailServerPort; |
||
0 ignored issues
–
show
Bug
Best Practice
introduced
by
![]() |
|||
450 | } |
||
451 | |||
452 | public function setMailServerPort(int $mailServerPort): ProcessEngineConfiguration |
||
453 | { |
||
454 | $this->mailServerPort = $mailServerPort; |
||
455 | return $this; |
||
456 | } |
||
457 | |||
458 | public function getMailServerUseTLS(): bool |
||
459 | { |
||
460 | return $this->useTLS; |
||
461 | } |
||
462 | |||
463 | public function setMailServerUseTLS(bool $useTLS): ProcessEngineConfiguration |
||
464 | { |
||
465 | $this->useTLS = $useTLS; |
||
466 | return $this; |
||
467 | } |
||
468 | |||
469 | public function getMailServerDefaultFrom(): string |
||
470 | { |
||
471 | return $this->mailServerDefaultFrom; |
||
472 | } |
||
473 | |||
474 | public function setMailServerDefaultFrom(string $mailServerDefaultFrom): ProcessEngineConfiguration |
||
475 | { |
||
476 | $this->mailServerDefaultFrom = $mailServerDefaultFrom; |
||
477 | return $this; |
||
478 | } |
||
479 | |||
480 | public function getDatabaseType(): string |
||
481 | { |
||
482 | return $this->databaseType; |
||
483 | } |
||
484 | |||
485 | public function setDatabaseType(string $databaseType): ProcessEngineConfiguration |
||
486 | { |
||
487 | $this->databaseType = $databaseType; |
||
488 | return $this; |
||
489 | } |
||
490 | |||
491 | public function getDatabaseVendor(): string |
||
492 | { |
||
493 | return $this->databaseVendor; |
||
494 | } |
||
495 | |||
496 | public function setDatabaseVendor(string $databaseVendor): ProcessEngineConfiguration |
||
497 | { |
||
498 | $this->databaseVendor = $databaseVendor; |
||
499 | return $this; |
||
500 | } |
||
501 | |||
502 | public function getDatabaseVersion(): string |
||
503 | { |
||
504 | return $this->databaseVersion; |
||
505 | } |
||
506 | |||
507 | public function setDatabaseVersion(string $databaseVersion): ProcessEngineConfiguration |
||
508 | { |
||
509 | $this->databaseVersion = $databaseVersion; |
||
510 | return $this; |
||
511 | } |
||
512 | |||
513 | public function getDatabaseSchemaUpdate(): string |
||
514 | { |
||
515 | return $this->databaseSchemaUpdate; |
||
516 | } |
||
517 | |||
518 | public function setDatabaseSchemaUpdate(string $databaseSchemaUpdate): ProcessEngineConfiguration |
||
519 | { |
||
520 | $this->databaseSchemaUpdate = $databaseSchemaUpdate; |
||
521 | return $this; |
||
522 | } |
||
523 | |||
524 | public function getDataSource(): DriverManager |
||
525 | { |
||
526 | return $this->dataSource; |
||
527 | } |
||
528 | |||
529 | public function setDataSource(DriverManager $dataSource): ProcessEngineConfiguration |
||
530 | { |
||
531 | $this->dataSource = $dataSource; |
||
532 | return $this; |
||
533 | } |
||
534 | |||
535 | public function getSchemaOperationsCommand(): SchemaOperationsCommand |
||
536 | { |
||
537 | return $this->schemaOperationsCommand; |
||
0 ignored issues
–
show
|
|||
538 | } |
||
539 | |||
540 | public function setSchemaOperationsCommand(SchemaOperationsCommand $schemaOperationsCommand): void |
||
541 | { |
||
542 | $this->schemaOperationsCommand = $schemaOperationsCommand; |
||
543 | } |
||
544 | |||
545 | public function getProcessEngineBootstrapCommand(): ProcessEngineBootstrapCommand |
||
546 | { |
||
547 | return $this->bootstrapCommand; |
||
0 ignored issues
–
show
|
|||
548 | } |
||
549 | |||
550 | public function setProcessEngineBootstrapCommand(ProcessEngineBootstrapCommand $bootstrapCommand): void |
||
551 | { |
||
552 | $this->bootstrapCommand = $bootstrapCommand; |
||
553 | } |
||
554 | |||
555 | public function getHistoryLevelCommand(): HistoryLevelSetupCommand |
||
556 | { |
||
557 | return $this->historyLevelCommand; |
||
558 | } |
||
559 | |||
560 | public function setHistoryLevelCommand(HistoryLevelSetupCommand $historyLevelCommand): void |
||
561 | { |
||
562 | $this->historyLevelCommand = $historyLevelCommand; |
||
563 | } |
||
564 | |||
565 | public function getDbDriver(): string |
||
566 | { |
||
567 | return $this->dbDriver; |
||
568 | } |
||
569 | |||
570 | public function setDbDriver(string $dbDriver): ProcessEngineConfiguration |
||
571 | { |
||
572 | $this->dbDriver = $dbDriver; |
||
573 | return $this; |
||
574 | } |
||
575 | |||
576 | public function getDbHost(): string |
||
577 | { |
||
578 | return $this->dbHost; |
||
579 | } |
||
580 | |||
581 | public function setDbHost(string $dbHost): ProcessEngineConfiguration |
||
582 | { |
||
583 | $this->dbHost = $dbHost; |
||
584 | return $this; |
||
585 | } |
||
586 | |||
587 | public function getDbUsername(): string |
||
588 | { |
||
589 | return $this->dbUsername; |
||
590 | } |
||
591 | |||
592 | public function setDbUsername(string $dbUsername): ProcessEngineConfiguration |
||
593 | { |
||
594 | $this->dbUsername = $dbUsername; |
||
595 | return $this; |
||
596 | } |
||
597 | |||
598 | public function getDbPassword(): string |
||
599 | { |
||
600 | return $this->dbPassword; |
||
601 | } |
||
602 | |||
603 | public function setDbPassword(string $dbPassword): ProcessEngineConfiguration |
||
604 | { |
||
605 | $this->dbPassword = $dbPassword; |
||
606 | return $this; |
||
607 | } |
||
608 | |||
609 | public function isTransactionsExternallyManaged(): bool |
||
610 | { |
||
611 | return $this->transactionsExternallyManaged; |
||
612 | } |
||
613 | |||
614 | public function setTransactionsExternallyManaged(bool $transactionsExternallyManaged): ProcessEngineConfiguration |
||
615 | { |
||
616 | $this->transactionsExternallyManaged = $transactionsExternallyManaged; |
||
617 | return $this; |
||
618 | } |
||
619 | |||
620 | public function getDbMaxActiveConnections(): int |
||
621 | { |
||
622 | return $this->dbMaxActiveConnections; |
||
623 | } |
||
624 | |||
625 | public function setDbMaxActiveConnections(int $dbMaxActiveConnections): ProcessEngineConfiguration |
||
626 | { |
||
627 | $this->dbMaxActiveConnections = $dbMaxActiveConnections; |
||
628 | return $this; |
||
629 | } |
||
630 | |||
631 | public function getDbMaxIdleConnections(): int |
||
632 | { |
||
633 | return $this->dbMaxIdleConnections; |
||
634 | } |
||
635 | |||
636 | public function setDbMaxIdleConnections(int $dbMaxIdleConnections): int |
||
637 | { |
||
638 | $this->dbMaxIdleConnections = $dbMaxIdleConnections; |
||
639 | return $this; |
||
0 ignored issues
–
show
|
|||
640 | } |
||
641 | |||
642 | public function getDbMaxCheckoutTime(): int |
||
643 | { |
||
644 | return $this->dbMaxCheckoutTime; |
||
645 | } |
||
646 | |||
647 | public function setDbMaxCheckoutTime(int $dbMaxCheckoutTime): ProcessEngineConfiguration |
||
648 | { |
||
649 | $this->dbMaxCheckoutTime = $dbMaxCheckoutTime; |
||
650 | return $this; |
||
651 | } |
||
652 | |||
653 | public function getDbMaxWaitTime(): int |
||
654 | { |
||
655 | return $this->dbMaxWaitTime; |
||
656 | } |
||
657 | |||
658 | public function setDbMaxWaitTime(int $dbMaxWaitTime): ProcessEngineConfiguration |
||
659 | { |
||
660 | $this->dbMaxWaitTime = $dbMaxWaitTime; |
||
661 | return $this; |
||
662 | } |
||
663 | |||
664 | public function isDbPingEnabled(): bool |
||
665 | { |
||
666 | return $this->dbPingEnabled; |
||
667 | } |
||
668 | |||
669 | public function setDbPingEnabled(bool $dbPingEnabled): ProcessEngineConfiguration |
||
670 | { |
||
671 | $this->dbPingEnabled = $dbPingEnabled; |
||
672 | return $this; |
||
673 | } |
||
674 | |||
675 | public function getDbPingQuery(): string |
||
676 | { |
||
677 | return $this->dbPingQuery; |
||
678 | } |
||
679 | |||
680 | public function setDbPingQuery(string $dbPingQuery): ProcessEngineConfiguration |
||
681 | { |
||
682 | $this->dbPingQuery = $dbPingQuery; |
||
683 | return $this; |
||
684 | } |
||
685 | |||
686 | public function getDbPingConnectionNotUsedFor(): int |
||
687 | { |
||
688 | return $this->dbPingConnectionNotUsedFor; |
||
689 | } |
||
690 | |||
691 | public function setDbPingConnectionNotUsedFor(int $dbPingNotUsedFor): ProcessEngineConfiguration |
||
692 | { |
||
693 | $this->dbPingConnectionNotUsedFor = $dbPingNotUsedFor; |
||
694 | return $this; |
||
695 | } |
||
696 | |||
697 | /** Gets the number of seconds the db driver will wait for a response from the database. */ |
||
698 | public function getDbStatementTimeout(): int |
||
699 | { |
||
700 | return $this->dbStatementTimeout; |
||
701 | } |
||
702 | |||
703 | /** Sets the number of seconds the db driver will wait for a response from the database. */ |
||
704 | public function setDbStatementTimeout(int $dbStatementTimeout): ProcessEngineConfiguration |
||
705 | { |
||
706 | $this->dbStatementTimeout = $dbStatementTimeout; |
||
707 | return $this; |
||
708 | } |
||
709 | |||
710 | public function isDbBatchProcessing(): bool |
||
711 | { |
||
712 | return $this->dbBatchProcessing; |
||
713 | } |
||
714 | |||
715 | public function setDbBatchProcessing(bool $dbBatchProcessing): ProcessEngineConfiguration |
||
716 | { |
||
717 | $this->dbBatchProcessing = $dbBatchProcessing; |
||
718 | return $this; |
||
719 | } |
||
720 | |||
721 | public function isJobExecutorActivate(): bool |
||
722 | { |
||
723 | return $this->jobExecutorActivate; |
||
724 | } |
||
725 | |||
726 | public function setJobExecutorActivate(bool $jobExecutorActivate): ProcessEngineConfiguration |
||
727 | { |
||
728 | $this->jobExecutorActivate = $jobExecutorActivate; |
||
729 | return $this; |
||
730 | } |
||
731 | |||
732 | public function isJobExecutorDeploymentAware(): bool |
||
733 | { |
||
734 | return $this->jobExecutorDeploymentAware; |
||
735 | } |
||
736 | |||
737 | public function setJobExecutorDeploymentAware(bool $jobExecutorDeploymentAware): ProcessEngineConfiguration |
||
738 | { |
||
739 | $this->jobExecutorDeploymentAware = $jobExecutorDeploymentAware; |
||
740 | return $this; |
||
741 | } |
||
742 | |||
743 | public function isJobExecutorAcquireByDueDate(): bool |
||
744 | { |
||
745 | return $this->jobExecutorAcquireByDueDate; |
||
746 | } |
||
747 | |||
748 | public function setJobExecutorAcquireByDueDate(bool $jobExecutorAcquireByDueDate): ProcessEngineConfiguration |
||
749 | { |
||
750 | $this->jobExecutorAcquireByDueDate = $jobExecutorAcquireByDueDate; |
||
751 | return $this; |
||
752 | } |
||
753 | |||
754 | public function isJobExecutorPreferTimerJobs(): bool |
||
755 | { |
||
756 | return $this->jobExecutorPreferTimerJobs; |
||
757 | } |
||
758 | |||
759 | public function setJobExecutorPreferTimerJobs(bool $jobExecutorPreferTimerJobs): ProcessEngineConfiguration |
||
760 | { |
||
761 | $this->jobExecutorPreferTimerJobs = $jobExecutorPreferTimerJobs; |
||
762 | return $this; |
||
763 | } |
||
764 | |||
765 | public function isHintJobExecutor(): bool |
||
766 | { |
||
767 | return $this->hintJobExecutor; |
||
768 | } |
||
769 | |||
770 | public function setHintJobExecutor(bool $hintJobExecutor): ProcessEngineConfiguration |
||
771 | { |
||
772 | $this->hintJobExecutor = $hintJobExecutor; |
||
773 | return $this; |
||
774 | } |
||
775 | |||
776 | public function getEntityManagerFactory(): EntityManager |
||
777 | { |
||
778 | return $this->entityManagerFactory; |
||
779 | } |
||
780 | |||
781 | public function setEntityManagerFactory(EntityManager $entityManagerFactory): ProcessEngineConfiguration |
||
782 | { |
||
783 | $this->entityManagerFactory = $entityManagerFactory; |
||
784 | return $this; |
||
785 | } |
||
786 | |||
787 | public function isHandleTransaction(): bool |
||
788 | { |
||
789 | return $this->handleTransaction; |
||
790 | } |
||
791 | |||
792 | public function setHandleTransaction(bool $handleTransaction): ProcessEngineConfiguration |
||
793 | { |
||
794 | $this->handleTransaction = $handleTransaction; |
||
795 | return $this; |
||
796 | } |
||
797 | |||
798 | public function isCloseEntityManager(): bool |
||
799 | { |
||
800 | return $this->closeEntityManager; |
||
801 | } |
||
802 | |||
803 | public function setCloseEntityManager(bool $closeEntityManager): ProcessEngineConfiguration |
||
804 | { |
||
805 | $this->closeEntityManager = $closeEntityManager; |
||
806 | return $this; |
||
807 | } |
||
808 | |||
809 | public function getPersistenceUnitName(): string |
||
810 | { |
||
811 | return $this->persistenceUnitName; |
||
812 | } |
||
813 | |||
814 | public function setPersistenceUnitName(string $persistenceUnitName): void |
||
815 | { |
||
816 | $this->persistenceUnitName = $persistenceUnitName; |
||
817 | } |
||
818 | |||
819 | public function isCreateIncidentOnFailedJobEnabled(): bool |
||
820 | { |
||
821 | return $this->createIncidentOnFailedJobEnabled; |
||
822 | } |
||
823 | |||
824 | public function setCreateIncidentOnFailedJobEnabled(bool $createIncidentOnFailedJobEnabled): ProcessEngineConfiguration |
||
825 | { |
||
826 | $this->createIncidentOnFailedJobEnabled = $createIncidentOnFailedJobEnabled; |
||
827 | return $this; |
||
828 | } |
||
829 | |||
830 | public function isAuthorizationEnabled(): bool |
||
831 | { |
||
832 | return $this->authorizationEnabled; |
||
833 | } |
||
834 | |||
835 | public function setAuthorizationEnabled(bool $isAuthorizationChecksEnabled): ProcessEngineConfiguration |
||
836 | { |
||
837 | $this->authorizationEnabled = $isAuthorizationChecksEnabled; |
||
838 | return $this; |
||
839 | } |
||
840 | |||
841 | public function getDefaultUserPermissionNameForTask(): string |
||
842 | { |
||
843 | return $this->defaultUserPermissionNameForTask; |
||
844 | } |
||
845 | |||
846 | public function setDefaultUserPermissionNameForTask(string $defaultUserPermissionNameForTask): ProcessEngineConfiguration |
||
847 | { |
||
848 | $this->defaultUserPermissionNameForTask = $defaultUserPermissionNameForTask; |
||
849 | return $this; |
||
850 | } |
||
851 | |||
852 | public function isAuthorizationEnabledForCustomCode(): bool |
||
853 | { |
||
854 | return $this->authorizationEnabledForCustomCode; |
||
855 | } |
||
856 | |||
857 | public function setAuthorizationEnabledForCustomCode(bool $authorizationEnabledForCustomCode): ProcessEngineConfiguration |
||
858 | { |
||
859 | $this->authorizationEnabledForCustomCode = $authorizationEnabledForCustomCode; |
||
860 | return $this; |
||
861 | } |
||
862 | |||
863 | public function isTenantCheckEnabled(): bool |
||
864 | { |
||
865 | return $this->tenantCheckEnabled; |
||
866 | } |
||
867 | |||
868 | public function setTenantCheckEnabled(bool $isTenantCheckEnabled): ProcessEngineConfiguration |
||
869 | { |
||
870 | $this->tenantCheckEnabled = $isTenantCheckEnabled; |
||
871 | return $this; |
||
872 | } |
||
873 | |||
874 | public function getGeneralResourceWhitelistPattern(): string |
||
875 | { |
||
876 | return $this->generalResourceWhitelistPattern; |
||
877 | } |
||
878 | |||
879 | public function setGeneralResourceWhitelistPattern(string $generalResourceWhitelistPattern): void |
||
880 | { |
||
881 | $this->generalResourceWhitelistPattern = $generalResourceWhitelistPattern; |
||
882 | } |
||
883 | |||
884 | public function getUserResourceWhitelistPattern(): string |
||
885 | { |
||
886 | return $this->userResourceWhitelistPattern; |
||
887 | } |
||
888 | |||
889 | public function setUserResourceWhitelistPattern(string $userResourceWhitelistPattern): void |
||
890 | { |
||
891 | $this->userResourceWhitelistPattern = $userResourceWhitelistPattern; |
||
892 | } |
||
893 | |||
894 | public function getGroupResourceWhitelistPattern(): string |
||
895 | { |
||
896 | return $this->groupResourceWhitelistPattern; |
||
897 | } |
||
898 | |||
899 | public function setGroupResourceWhitelistPattern(string $groupResourceWhitelistPattern): void |
||
900 | { |
||
901 | $this->groupResourceWhitelistPattern = $groupResourceWhitelistPattern; |
||
902 | } |
||
903 | |||
904 | public function getTenantResourceWhitelistPattern(): string |
||
905 | { |
||
906 | return $this->tenantResourceWhitelistPattern; |
||
907 | } |
||
908 | |||
909 | public function setTenantResourceWhitelistPattern(string $tenantResourceWhitelistPattern): void |
||
910 | { |
||
911 | $this->tenantResourceWhitelistPattern = $tenantResourceWhitelistPattern; |
||
912 | } |
||
913 | |||
914 | public function getDefaultNumberOfRetries(): int |
||
915 | { |
||
916 | return $this->defaultNumberOfRetries; |
||
917 | } |
||
918 | |||
919 | public function setDefaultNumberOfRetries(int $defaultNumberOfRetries): void |
||
920 | { |
||
921 | $this->defaultNumberOfRetries = $defaultNumberOfRetries; |
||
922 | } |
||
923 | |||
924 | public function getValueTypeResolver(): ValueTypeResolverInterface |
||
925 | { |
||
926 | return $this->valueTypeResolver; |
||
927 | } |
||
928 | |||
929 | public function setValueTypeResolver(ValueTypeResolverInterface $valueTypeResolver): ProcessEngineConfiguration |
||
930 | { |
||
931 | $this->valueTypeResolver = $valueTypeResolver; |
||
932 | return $this; |
||
933 | } |
||
934 | |||
935 | public function isEnsureJobDueDateNotNull(): bool |
||
936 | { |
||
937 | return $this->ensureJobDueDateNotNull; |
||
938 | } |
||
939 | |||
940 | public function setEnsureJobDueDateNotNull(bool $ensureJobDueDateNotNull): void |
||
941 | { |
||
942 | $this->ensureJobDueDateNotNull = $ensureJobDueDateNotNull; |
||
943 | } |
||
944 | |||
945 | public function isProducePrioritizedJobs(): bool |
||
946 | { |
||
947 | return $this->producePrioritizedJobs; |
||
948 | } |
||
949 | |||
950 | public function setProducePrioritizedJobs(bool $producePrioritizedJobs): void |
||
951 | { |
||
952 | $this->producePrioritizedJobs = $producePrioritizedJobs; |
||
953 | } |
||
954 | |||
955 | public function isJobExecutorAcquireByPriority(): bool |
||
956 | { |
||
957 | return $this->jobExecutorAcquireByPriority; |
||
958 | } |
||
959 | |||
960 | public function setJobExecutorAcquireByPriority(bool $jobExecutorAcquireByPriority): void |
||
961 | { |
||
962 | $this->jobExecutorAcquireByPriority = $jobExecutorAcquireByPriority; |
||
963 | } |
||
964 | |||
965 | public function isProducePrioritizedExternalTasks(): bool |
||
966 | { |
||
967 | return $this->producePrioritizedExternalTasks; |
||
968 | } |
||
969 | |||
970 | public function setProducePrioritizedExternalTasks(bool $producePrioritizedExternalTasks): void |
||
971 | { |
||
972 | $this->producePrioritizedExternalTasks = $producePrioritizedExternalTasks; |
||
973 | } |
||
974 | |||
975 | public function setAuthorizationCheckRevokes(string $authorizationCheckRevokes): bool |
||
976 | { |
||
977 | $this->authorizationCheckRevokes = $authorizationCheckRevokes; |
||
0 ignored issues
–
show
In this branch, the function will implicitly return
null which is incompatible with the type-hinted return boolean . Consider adding a return statement or allowing null as return value.
For hinted functions/methods where all return statements with the correct type are only reachable via conditions, ?null? gets implicitly returned which may be incompatible with the hinted type. Let?s take a look at an example: interface ReturnsInt {
public function returnsIntHinted(): int;
}
class MyClass implements ReturnsInt {
public function returnsIntHinted(): int
{
if (foo()) {
return 123;
}
// here: null is implicitly returned
}
}
![]() |
|||
978 | } |
||
979 | |||
980 | public function getAuthorizationCheckRevokes(): string |
||
981 | { |
||
982 | return $this->authorizationCheckRevokes; |
||
983 | } |
||
984 | |||
985 | public function isEnableExceptionsAfterUnhandledBpmnError(): bool |
||
986 | { |
||
987 | return $this->enableExceptionsAfterUnhandledBpmnError; |
||
988 | } |
||
989 | |||
990 | public function setEnableExceptionsAfterUnhandledBpmnError(bool $enableExceptionsAfterUnhandledBpmnError): void |
||
991 | { |
||
992 | $this->enableExceptionsAfterUnhandledBpmnError = $enableExceptionsAfterUnhandledBpmnError; |
||
993 | } |
||
994 | |||
995 | public function isSkipHistoryOptimisticLockingExceptions(): bool |
||
996 | { |
||
997 | return $this->skipHistoryOptimisticLockingExceptions; |
||
998 | } |
||
999 | |||
1000 | public function setSkipHistoryOptimisticLockingExceptions(bool $skipHistoryOptimisticLockingExceptions): ProcessEngineConfiguration |
||
1001 | { |
||
1002 | $this->skipHistoryOptimisticLockingExceptions = $skipHistoryOptimisticLockingExceptions; |
||
1003 | return $this; |
||
1004 | } |
||
1005 | |||
1006 | public function isEnforceSpecificVariablePermission(): bool |
||
1007 | { |
||
1008 | return $this->enforceSpecificVariablePermission; |
||
1009 | } |
||
1010 | |||
1011 | public function setEnforceSpecificVariablePermission(bool $ensureSpecificVariablePermission): void |
||
1012 | { |
||
1013 | $this->enforceSpecificVariablePermission = $ensureSpecificVariablePermission; |
||
1014 | } |
||
1015 | |||
1016 | public function getDisabledPermissions(): array |
||
1017 | { |
||
1018 | return $this->disabledPermissions; |
||
1019 | } |
||
1020 | |||
1021 | public function setDisabledPermissions(array $disabledPermissions): void |
||
1022 | { |
||
1023 | $this->disabledPermissions = $disabledPermissions; |
||
1024 | } |
||
1025 | |||
1026 | public function isEnablePasswordPolicy(): bool |
||
1027 | { |
||
1028 | return $this->enablePasswordPolicy; |
||
1029 | } |
||
1030 | |||
1031 | public function setEnablePasswordPolicy(bool $enablePasswordPolicy): ProcessEngineConfiguration |
||
1032 | { |
||
1033 | $this->enablePasswordPolicy = $enablePasswordPolicy; |
||
1034 | return $this; |
||
1035 | } |
||
1036 | |||
1037 | public function getPasswordPolicy(): PasswordPolicyInterface |
||
1038 | { |
||
1039 | return $this->passwordPolicy; |
||
1040 | } |
||
1041 | |||
1042 | public function setPasswordPolicy(PasswordPolicyInterface $passwordPolicy): ProcessEngineConfiguration |
||
1043 | { |
||
1044 | $this->passwordPolicy = $passwordPolicy; |
||
1045 | return $this; |
||
1046 | } |
||
1047 | |||
1048 | public function isEnableCmdExceptionLogging(): bool |
||
1049 | { |
||
1050 | return $this->enableCmdExceptionLogging; |
||
1051 | } |
||
1052 | |||
1053 | public function setEnableCmdExceptionLogging(bool $enableCmdExceptionLogging): ProcessEngineConfiguration |
||
1054 | { |
||
1055 | $this->enableCmdExceptionLogging = $enableCmdExceptionLogging; |
||
1056 | return $this; |
||
1057 | } |
||
1058 | |||
1059 | public function isEnableReducedJobExceptionLogging(): bool |
||
1060 | { |
||
1061 | return $this->enableReducedJobExceptionLogging; |
||
1062 | } |
||
1063 | |||
1064 | public function setEnableReducedJobExceptionLogging(bool $enableReducedJobExceptionLogging): ProcessEngineConfiguration |
||
1065 | { |
||
1066 | $this->enableReducedJobExceptionLogging = $enableReducedJobExceptionLogging; |
||
1067 | return $this; |
||
1068 | } |
||
1069 | |||
1070 | public function getDeserializationAllowedClasses(): string |
||
1071 | { |
||
1072 | return $this->deserializationAllowedClasses; |
||
1073 | } |
||
1074 | |||
1075 | public function setDeserializationAllowedClasses(string $deserializationAllowedClasses): ProcessEngineConfiguration |
||
1076 | { |
||
1077 | $this->deserializationAllowedClasses = $deserializationAllowedClasses; |
||
1078 | return $this; |
||
1079 | } |
||
1080 | |||
1081 | public function getDeserializationAllowedPackages(): string |
||
1082 | { |
||
1083 | return $this->deserializationAllowedPackages; |
||
1084 | } |
||
1085 | |||
1086 | public function setDeserializationAllowedPackages(string $deserializationAllowedPackages): ProcessEngineConfiguration |
||
1087 | { |
||
1088 | $this->deserializationAllowedPackages = $deserializationAllowedPackages; |
||
1089 | return $this; |
||
1090 | } |
||
1091 | |||
1092 | public function getDeserializationTypeValidator(): DeserializationTypeValidatorInterface |
||
1093 | { |
||
1094 | return $this->deserializationTypeValidator; |
||
1095 | } |
||
1096 | |||
1097 | public function setDeserializationTypeValidator(DeserializationTypeValidatorInterface $deserializationTypeValidator): ProcessEngineConfiguration |
||
1098 | { |
||
1099 | $this->deserializationTypeValidator = $deserializationTypeValidator; |
||
1100 | return $this; |
||
1101 | } |
||
1102 | |||
1103 | public function isDeserializationTypeValidationEnabled(): bool |
||
1104 | { |
||
1105 | return $this->deserializationTypeValidationEnabled; |
||
1106 | } |
||
1107 | |||
1108 | public function setDeserializationTypeValidationEnabled(bool $deserializationTypeValidationEnabled): ProcessEngineConfiguration |
||
1109 | { |
||
1110 | $this->deserializationTypeValidationEnabled = $deserializationTypeValidationEnabled; |
||
1111 | return $this; |
||
1112 | } |
||
1113 | |||
1114 | public function getInstallationId(): string |
||
1115 | { |
||
1116 | return $this->installationId; |
||
1117 | } |
||
1118 | |||
1119 | public function setInstallationId(string $installationId): ProcessEngineConfiguration |
||
1120 | { |
||
1121 | $this->installationId = $installationId; |
||
1122 | return $this; |
||
1123 | } |
||
1124 | |||
1125 | public function getTelemetryRegistry(): ?TelemetryRegistry |
||
1126 | { |
||
1127 | return $this->telemetryRegistry; |
||
1128 | } |
||
1129 | |||
1130 | public function setTelemetryRegistry(TelemetryRegistry $telemetryRegistry): ProcessEngineConfiguration |
||
1131 | { |
||
1132 | $this->telemetryRegistry = $telemetryRegistry; |
||
1133 | return $this; |
||
1134 | } |
||
1135 | |||
1136 | public function isSkipOutputMappingOnCanceledActivities(): bool |
||
1137 | { |
||
1138 | return $this->skipOutputMappingOnCanceledActivities; |
||
1139 | } |
||
1140 | |||
1141 | public function setSkipOutputMappingOnCanceledActivities(bool $skipOutputMappingOnCanceledActivities): void |
||
1142 | { |
||
1143 | $this->skipOutputMappingOnCanceledActivities = $skipOutputMappingOnCanceledActivities; |
||
1144 | } |
||
1145 | } |
||
1146 |