
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