io.automatiko.engine.addons.persistence.AbstractProcessInstancesFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of automatiko-dynamodb-persistence-addon Show documentation
Show all versions of automatiko-dynamodb-persistence-addon Show documentation
DynamoDB based persistence for Automatiko Engine
package io.automatiko.engine.addons.persistence;
import java.util.Optional;
import io.automatiko.engine.addons.persistence.dynamodb.DynamoDBProcessInstances;
import io.automatiko.engine.api.Model;
import io.automatiko.engine.api.workflow.Process;
import io.automatiko.engine.api.workflow.ProcessInstancesFactory;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
/**
* This class must always have exact FQCN as
* io.automatiko.engine.addons.persistence.AbstractProcessInstancesFactory
*
*/
public abstract class AbstractProcessInstancesFactory implements ProcessInstancesFactory {
protected DynamoDbClient dynamodb;
protected Optional createTables;
protected Optional readCapacity;
protected Optional writeCapacity;
public AbstractProcessInstancesFactory() {
}
public AbstractProcessInstancesFactory(DynamoDbClient dynamodb, Optional createTables,
Optional readCapacity, Optional writeCapacity) {
this.dynamodb = dynamodb;
this.createTables = createTables;
this.readCapacity = readCapacity;
this.writeCapacity = writeCapacity;
}
@SuppressWarnings("unchecked")
public DynamoDBProcessInstances createProcessInstances(Process process) {
return new DynamoDBProcessInstances((Process) process, dynamodb, codec(),
transactionLogStore(), auditor(), createTables, readCapacity, writeCapacity);
}
}