Skip to content

Commit f4a4f5d

Browse files
authored
Added methods U.propertiesToMap(properties) and U.mapToProperties(map)
1 parent 7a043fb commit f4a4f5d

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed

src/main/java/com/github/underscore/U.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import java.util.Collection;
4141
import java.util.Collections;
4242
import java.util.Comparator;
43+
import java.util.Enumeration;
4344
import java.util.HashMap;
4445
import java.util.HashSet;
4546
import java.util.Iterator;
@@ -48,6 +49,7 @@
4849
import java.util.Locale;
4950
import java.util.Map;
5051
import java.util.Optional;
52+
import java.util.Properties;
5153
import java.util.Set;
5254
import java.util.function.BiConsumer;
5355
import java.util.function.BiFunction;
@@ -3491,4 +3493,28 @@ public String toString() {
34913493
return data.toString();
34923494
}
34933495
}
3496+
3497+
public static Map<String, Object> propertiesToMap(Properties properties) {
3498+
Map<String, Object> map = new LinkedHashMap<>();
3499+
if (properties != null && !properties.isEmpty()) {
3500+
Enumeration<?> enumProperties = properties.propertyNames();
3501+
while (enumProperties.hasMoreElements()) {
3502+
String name = (String)enumProperties.nextElement();
3503+
map.put(name, properties.getProperty(name));
3504+
}
3505+
}
3506+
return map;
3507+
}
3508+
3509+
public static Properties mapToProperties(Map<String, Object> map) {
3510+
Properties properties = new Properties();
3511+
if (map != null) {
3512+
for (final Map.Entry<String, Object> entry : map.entrySet()) {
3513+
if (!isNull(entry.getValue())) {
3514+
properties.put(entry.getKey(), String.valueOf(entry.getValue()));
3515+
}
3516+
}
3517+
}
3518+
return properties;
3519+
}
34943520
}

src/test/java/com/github/underscore/UnderscoreTest.java

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import java.util.NoSuchElementException;
4141
import java.util.Objects;
4242
import java.util.Optional;
43+
import java.util.Properties;
4344
import java.util.function.Predicate;
4445
import org.junit.jupiter.api.Test;
4546

@@ -745,4 +746,53 @@ void jobtest() {
745746
+ "{string=Hear it all the time, come back rewind, longestWord=6}]",
746747
result.toString());
747748
}
749+
750+
@Test
751+
void testPropertiesToMap() {
752+
Properties properties = new Properties();
753+
properties.setProperty("key1", "value1");
754+
properties.setProperty("key2", "value2");
755+
properties.setProperty("key3", "value3");
756+
Map<String, Object> map = U.propertiesToMap(properties);
757+
assertEquals(3, map.size());
758+
assertEquals("value1", map.get("key1"));
759+
assertEquals("value2", map.get("key2"));
760+
assertEquals("value3", map.get("key3"));
761+
}
762+
763+
@Test
764+
void testPropertiesToMapWithEmptyProperties() {
765+
Properties properties = new Properties();
766+
Map<String, Object> map = U.propertiesToMap(properties);
767+
assertEquals(0, map.size());
768+
Map<String, Object> map2 = U.propertiesToMap(null);
769+
assertEquals(0, map.size());
770+
}
771+
772+
@Test
773+
void testMapToProperties() {
774+
Map<String, Object> map = new LinkedHashMap<>();
775+
map.put("key1", "value1");
776+
map.put("key2", "value2");
777+
map.put("key3", "value3");
778+
Properties properties = U.mapToProperties(map);
779+
assertEquals(3, properties.size());
780+
assertEquals("value1", properties.getProperty("key1"));
781+
assertEquals("value2", properties.getProperty("key2"));
782+
assertEquals("value3", properties.getProperty("key3"));
783+
}
784+
785+
@Test
786+
void testMapToPropertiesWithNullValues() {
787+
Map<String, Object> map = new LinkedHashMap<>();
788+
map.put("key1", "value1");
789+
map.put("key2", null);
790+
map.put("key3", "value3");
791+
Properties properties = U.mapToProperties(map);
792+
assertEquals(2, properties.size());
793+
assertEquals("value1", properties.getProperty("key1"));
794+
assertEquals("value3", properties.getProperty("key3"));
795+
Properties properties2 = U.mapToProperties(null);
796+
assertEquals(0, properties2.size());
797+
}
748798
}

0 commit comments

Comments
 (0)