All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sap.cloud.lm.sl.slp.model.AbstractServiceMetadataBuilder Maven / Gradle / Ivy

package com.sap.cloud.lm.sl.slp.model;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Set;

import com.sap.cloud.lm.sl.common.util.CommonUtil;
import com.sap.cloud.lm.sl.slp.model.builder.ServiceMetadataBuilder;

abstract class AbstractServiceMetadataBuilder
    extends AbstractStepMetadataBuilderimplements ServiceMetadataBuilder {

    private static final String DEFAULT_SERVICE_VERSION = "1.0";

    protected String implementationId;
    protected Set parameters;
    protected Boolean beta;
    protected String requiredPermission;
    protected List versions;

    @Override
    public BT requiredPermission(String requiredPermission) {
        this.requiredPermission = requiredPermission;
        return getThis();
    }

    @Override
    public BT parameters(Set parameters) {
        this.parameters = parameters;
        return getThis();
    }

    @Override
    public BT implementationId(String implementationId) {
        this.implementationId = implementationId;
        return getThis();
    }

    @Override
    public BT beta(boolean beta) {
        this.beta = beta;
        return getThis();
    }

    @Override
    public BT versions(List versions) {
        this.versions = versions;
        return getThis();
    }

    @Override
    public T build() {
        T meta = super.build();
        meta.visible = true;
        meta.implementationId = CommonUtil.getOrDefault(implementationId, id);
        meta.parameters = CommonUtil.getOrDefault(parameters, Collections. emptySet());
        meta.beta = CommonUtil.getOrDefault(beta, false);
        meta.versions = CommonUtil.getOrDefault(versions, Arrays.asList(DEFAULT_SERVICE_VERSION));
        meta.requiredPermission = requiredPermission;
        return meta;
    }

    @Override
    public BT versions(String... versions) {
        return this.versions(Arrays.asList(versions));
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy