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

com.talanlabs.configproperties.component.ComponentConfigBuilder Maven / Gradle / Ivy

The newest version!
package com.talanlabs.configproperties.component;

import com.talanlabs.component.IComponent;
import com.talanlabs.configproperties.ConfigBuilder;
import com.talanlabs.configproperties.IConfigProperty;
import com.talanlabs.configproperties.component.meta.ComponentMetaInfoBean;
import com.talanlabs.configproperties.loader.IConfigLoader;

public class ComponentConfigBuilder {

    private final ConfigBuilder configBuilder;

    private ComponentConfigBuilder(Class componentClass) {
        super();

        configBuilder = ConfigBuilder.newBuilder(componentClass, ComponentMetaInfoBean.createDelegateMetaInfoBeanFunction());
    }

    /**
     * Create config component
     *
     * @param componentClass component class
     */
    public static  ComponentConfigBuilder newBuilder(Class componentClass) {
        return new ComponentConfigBuilder<>(componentClass);
    }

    public ComponentConfigBuilder configLoader(IConfigLoader configLoader) {
        this.configBuilder.configLoader(configLoader);
        return this;
    }

    /**
     * Add config property
     */
    public ComponentConfigBuilder configProperty(IConfigProperty configProperty, IConfigProperty... configProperties) {
        this.configBuilder.configProperty(configProperty, configProperties);
        return this;
    }

    /**
     * @return New config component
     */
    public E build() {
        return this.configBuilder.build();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy