
no.mnemonic.services.triggers.service.converters.TriggerEventDefinitionConverter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of triggers-service Show documentation
Show all versions of triggers-service Show documentation
Implementation of the service logic
The newest version!
package no.mnemonic.services.triggers.service.converters;
import no.mnemonic.commons.utilities.ObjectUtils;
import no.mnemonic.commons.utilities.collections.MapUtils;
import no.mnemonic.services.triggers.api.model.v1.FunctionInfo;
import no.mnemonic.services.triggers.api.model.v1.TriggerEventDefinition;
import no.mnemonic.services.triggers.service.dao.TriggerEventDefinitionEntity;
import java.util.Map;
import java.util.function.Function;
import static no.mnemonic.commons.utilities.collections.MapUtils.Pair.T;
public class TriggerEventDefinitionConverter implements Function {
private final Function functionResolver;
private TriggerEventDefinitionConverter(Function functionResolver) {
this.functionResolver = ObjectUtils.notNull(functionResolver, "Cannot instantiate TriggerEventDefinitionConverter without 'functionResolver'.");
}
@Override
public TriggerEventDefinition apply(TriggerEventDefinitionEntity entity) {
if (entity == null) return null;
return TriggerEventDefinition.builder()
.setId(entity.getId())
.setService(entity.getService())
.setName(entity.getName())
.setPublicPermission(functionResolver.apply(entity.getPublicPermission()))
.setRoleBasedPermission(functionResolver.apply(entity.getRoleBasedPermission()))
.setPrivatePermission(functionResolver.apply(entity.getPrivatePermission()))
.setScopes(convertScopes(entity))
.build();
}
private Map convertScopes(TriggerEventDefinitionEntity entity) {
if (entity.getScopes() == null) return null;
return MapUtils.map(entity.getScopes().entrySet(), e -> T(e.getKey(), functionResolver.apply(e.getValue())));
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private Function functionResolver;
private Builder() {
}
public TriggerEventDefinitionConverter build() {
return new TriggerEventDefinitionConverter(functionResolver);
}
public Builder setFunctionResolver(Function functionResolver) {
this.functionResolver = functionResolver;
return this;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy