001package co.codewizards.cloudstore.core.dto;
002
003import static java.util.Objects.*;
004
005import java.util.ArrayList;
006import java.util.List;
007import java.util.Map;
008import java.util.Properties;
009
010import javax.xml.bind.annotation.XmlRootElement;
011
012@XmlRootElement
013public class ConfigPropSetDto {
014
015        private List<ConfigPropDto> configPropDtos;
016
017        public ConfigPropSetDto() {
018        }
019
020        public ConfigPropSetDto(final Properties properties) {
021                requireNonNull(properties, "properties");
022                configPropDtos = new ArrayList<>(properties.size());
023                for (final Map.Entry<Object, Object> me : properties.entrySet()) {
024                        final ConfigPropDto configPropDto = new ConfigPropDto();
025                        configPropDto.setKey((String) me.getKey());
026                        configPropDto.setValue((String) me.getValue());
027                        configPropDtos.add(configPropDto);
028                }
029        }
030
031        public List<ConfigPropDto> getConfigPropDtos() {
032                if (configPropDtos == null)
033                        configPropDtos = new ArrayList<>();
034
035                return configPropDtos;
036        }
037
038        public void setConfigPropDtos(List<ConfigPropDto> configPropDtos) {
039                this.configPropDtos = configPropDtos;
040        }
041
042        public Properties toProperties() {
043                final Properties properties = new Properties();
044                for (final ConfigPropDto configPropDto : getConfigPropDtos())
045                        properties.setProperty(configPropDto.getKey(), configPropDto.getValue());
046
047                return properties;
048        }
049
050        @Override
051        public String toString() {
052                return getClass().getSimpleName() + '[' + toString_getProperties() + ']';
053        }
054
055        protected String toString_getProperties() {
056                return "configPropDtos=" + configPropDtos;
057        }
058}