1 /* Copyright (c) 2008 Sascha Kohlmann 2 * 3 * This program is free software: you can redistribute it and/or modify 4 * it under the terms of the GNU Affero General Public License as published by 5 * the Free Software Foundation, either version 3 of the License, or 6 * (at your option) any later version. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU Affero General Public License for more details. 12 * 13 * You should have received a copy of the GNU Affero General Public License 14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 15 */ 16 package net.sf.eos.util.functions; 17 18 import net.sf.eos.Experimental; 19 import net.sf.eos.Function; 20 import net.sf.eos.Nullable; 21 import net.sf.eos.config.ConfigurationKey; 22 23 /** 24 * The function returns the default value of a {@link ConfigurationKey}. 25 * @author Sascha Kohlmann 26 * @since 0.1.0 27 * @see ConfigurationKeyIntrospectorFunction 28 */ 29 @Experimental 30 public class DefaultValueConfigurationKeyFunction 31 implements Function<ConfigurationKey, String> { 32 33 /** 34 * Returns the {@linkplain ConfigurationKey#defaultValue() default value} 35 * of a {@code ConfigurationKey}. 36 * @param from the configuration key instance 37 * @return the default value. Maybe {@code null} 38 */ 39 public String apply(@Nullable ConfigurationKey from) { 40 return from == null ? null : from.defaultValue(); 41 } 42 }