1 package org.kuali.common.util.spring.env;
2
3 import org.kuali.common.util.Assert;
4
5 public final class EnvContext<T> {
6
7 public EnvContext(String key, Class<T> type) {
8 this(key, type, null);
9 }
10
11 public EnvContext(String key, Class<T> type, T defaultValue) {
12 Assert.noNulls(type);
13 Assert.noBlanks(key);
14 this.key = key;
15 this.type = type;
16 this.defaultValue = defaultValue;
17 }
18
19 private final String key;
20 private final Class<T> type;
21 private final T defaultValue;
22
23 public String getKey() {
24 return key;
25 }
26
27 public Class<T> getType() {
28 return type;
29 }
30
31 public T getDefaultValue() {
32 return defaultValue;
33 }
34
35 public static <T> EnvContext<T> newCtx(String key, Class<T> type, T defaultValue) {
36 return new EnvContext<T>(key, type, defaultValue);
37 }
38
39 public static EnvContext<String> newString(String key, String defaultValue) {
40 return newCtx(key, String.class, defaultValue);
41 }
42
43 public static EnvContext<Boolean> newBoolean(String key, Boolean defaultValue) {
44 return newCtx(key, Boolean.class, defaultValue);
45 }
46
47 public static EnvContext<Integer> newInteger(String key, Integer defaultValue) {
48 return newCtx(key, Integer.class, defaultValue);
49 }
50
51 }