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 }