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

com.socialbakers.config.generator.templates.java-config.ftl Maven / Gradle / Ivy

Go to download

Maven plugin for small application config support. Allows you to define configuration for your application at one place and generate config files and java class. Configuration can be instantiate by var args, file config or environment variables or combination of all. TODO: - boolean opts -- is/get -- option without value true - make def enum public - static instance to access from everywhere without pass an instance

The newest version!
package ${package};

import com.socialbakers.config.IParamDefinition;
import com.socialbakers.config.generator.ParamValueSeparator;

/**
 * !!! Generated file - Do not modify it !!!
 */
public <#if abstract>abstract class ${className} extends ${superClass} {

	static {
		if (CONF_DIR_ENV == null) {
			CONF_DIR_ENV = "${confDirEnv}";
		}
		if (PARAM_VALUE_SEPARATOR == null) {
			PARAM_VALUE_SEPARATOR = ParamValueSeparator.${paramValueSeparator.name()};
		}
		ALWAYS_RELOAD = ${alwaysReload};
	}

<#list params as param>
	<#assign x0 = "">
	<#assign x1 = "">
	<#if param.javaType=="String" && param.defaultValue?? && param.defaultValue!="null">
		<#assign x0 = '"'>
		<#assign x1 = '"'>
	
	private ${param.javaType} ${param.getName()}<#if param.defaultValue??> = ${x0}${param.defaultValue}${x1};

	
	protected ${className}(String helpName, String helpDescription) {
		super(helpName, helpDescription);
	}
	
	public ${className}(String[] args) {
		this("${helpName}", "${helpDescription}");
		addDef(Def.values());
		<#if genXml>addResource("${configFileDefault}");
		addResource("${configFileSite}");
		setArgs(args);
		reload();
	}
	
<#list params as param>
	public ${param.javaType} get${param.getName()?cap_first}() {
		if (ALWAYS_RELOAD) {
			reload();
		}		
		return ${param.getName()};
	}
	
	public void set${param.getName()?cap_first}(${param.javaType} ${param.getName()}) {
		this.${param.getName()} = ${param.getName()};
		if (!suspendValidation) {
			validate();
		}
	}
	


	public enum Def implements IParamDefinition {
	
<#list params as param>
	<#assign name = param.getName()>
	<#if param.description??><#assign desc = '"' + param.description + '"'><#else><#assign desc = "null">
	<#if param.env??><#assign env = '"' + param.env + '"'><#else><#assign env = "null">
	<#if param.option??><#assign option = '"' + param.option + '"'><#else><#assign option = "null">
	<#if param.order??><#assign order = param.order><#else><#assign order = "null">
	<#if param.required><#assign required = "true"><#else><#assign required = "false">
	<#if param.defaultValue??><#assign defaultValue = '"'+param.defaultValue+'"'><#else><#assign defaultValue = "null">
		${name}(${desc}, ${env}, ${option}, ${order}, ${required}, ${defaultValue}, "${param.javaType}"),

		;
		
		private final String desc;
		private final String env;
		private final String option;
		private final Integer order;
		private final boolean required;
		private final String defaultValue;
		private final String javaType;
		
		private Def(String desc, String env, String option, Integer order, boolean required, String defaultValue, 
				String javaType) {
			this.desc = desc;
			this.env = env;
			this.option = option;
			this.order = order;
			this.required = required;
			this.defaultValue = defaultValue;
			this.javaType = javaType;
		}
		
		@Override
		public String getDescription() {
			return desc;
		}
		
		@Override
		public String getEnv() {
			return env;
		}

		@Override
		public String getName() {
			return name();
		}

		@Override
		public String getOption() {
			return option;
		}

		@Override
		public Integer getOrder() {
			return order;
		}
		
		@Override
		public boolean isRequired() {
			return required;
		}
		
		@Override
		public String getDefaultValue() {
			return defaultValue;
		}
	
		@Override
		public String getJavaType() {
			return javaType;
		}
	}	

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy