View Javadoc

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  }