/**
* Copyright (c) 2013-2016, The SeedStack authors <http://seedstack.org>
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package org.seedstack.seed;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* This annotation marks fields which will be automatically valued by SEED, using application configuration.
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface Configuration {
/**
* @return the configuration property name.
*/
String[] value() default {};
/**
* @return true if the configuration property is mandatory, false otherwise.
*/
boolean mandatory() default false;
/**
* @return true if a default value should be injected when the field is null, false if the field should be left as-is.
*/
boolean injectDefault() default true;
}