![JAR search and dependency download from the Maven repository](/logo.png)
brainslug.flow.execution.property.store.HashMapPropertyStore Maven / Gradle / Ivy
The newest version!
package brainslug.flow.execution.property.store;
import brainslug.flow.definition.Identifier;
import brainslug.flow.execution.instance.FlowInstanceProperty;
import brainslug.flow.execution.instance.FlowInstanceProperties;
import brainslug.flow.execution.property.ExecutionProperties;
import brainslug.util.Option;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class HashMapPropertyStore implements PropertyStore {
Map, ExecutionProperties> propertiesByInstance = Collections.synchronizedMap(new HashMap, ExecutionProperties>());
@Override
public void setProperty(Identifier> instanceId, FlowInstanceProperty> property) {
ExecutionProperties instanceProperties = propertiesByInstance.get(instanceId);
if (instanceProperties != null) {
instanceProperties.with(property.getKey(), property.getValue());
}
}
@Override
public void setProperties(Identifier> instanceId, FlowInstanceProperties, FlowInstanceProperty>> properties) {
propertiesByInstance.put(instanceId, new ExecutionProperties().from(properties.values()));
}
@Override
public Option> getProperty(Identifier> instanceId, Identifier> key) {
ExecutionProperties instanceProperties = propertiesByInstance.get(instanceId);
if (instanceProperties == null) {
return Option.empty();
} else {
return Option.>of(instanceProperties.get(key.stringValue()));
}
}
@Override
public FlowInstanceProperties, FlowInstanceProperty>> getProperties(Identifier> instanceId) {
return Option.of(propertiesByInstance.get(instanceId)).orElse(new ExecutionProperties());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy