001package org.kuali.common.util.env.spring;
002
003import java.util.Properties;
004
005import org.kuali.common.util.PropertyUtils;
006import org.kuali.common.util.property.ImmutableProperties;
007import org.springframework.core.env.AbstractEnvironment;
008import org.springframework.core.env.PropertiesPropertySource;
009
010public final class PropertiesEnvironment extends AbstractEnvironment {
011
012        private static final String NAME = "properties";
013
014        /**
015         * Default environment that uses system properties / environment variables (prefixed with <code>env</code>)
016         */
017        public PropertiesEnvironment() {
018                this(PropertyUtils.getGlobalProperties());
019        }
020
021        /**
022         * Create an environment based on <code>properties</code>
023         */
024        public PropertiesEnvironment(Properties properties) {
025                this.properties = ImmutableProperties.copyOf(properties);
026                super.getPropertySources().addLast(new PropertiesPropertySource(NAME, properties));
027        }
028
029        private final Properties properties;
030
031        public Properties getProperties() {
032                return properties;
033        }
034
035}