1 package com.jsql.view.swing.dialog.translate;
2
3 import java.util.*;
4 import java.util.stream.Collectors;
5
6 public class SortedProperties extends Properties {
7 @Override
8 public synchronized Enumeration<Object> keys() {
9 Enumeration<Object> keysEnum = super.keys();
10 List<String> keyList = new ArrayList<>();
11 while (keysEnum.hasMoreElements()) {
12 keyList.add((String) keysEnum.nextElement());
13 }
14 Collections.sort(keyList);
15 return Collections.enumeration(keyList.stream()
16 .map(s -> (Object) s)
17 .collect(Collectors.toList()));
18 }
19 @Override
20 public Set<Map.Entry<Object, Object>> entrySet() {
21 Map<Object, Object> treeMap = new TreeMap<>();
22 Set<Map.Entry<Object, Object>> entrySet = super.entrySet();
23 for (Map.Entry<Object, Object> entry : entrySet) {
24 treeMap.put(entry.getKey(), entry.getValue());
25 }
26 return Collections.synchronizedSet(treeMap.entrySet());
27 }
28 }