mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-18 11:49:09 +00:00
Using flat keys instead of '_' for perspective own settings
This commit is contained in:
+37
-14
@@ -80,32 +80,49 @@ public abstract class AbstractSettingsToJsonSerializer<OBJECT, ARRAY> {
|
||||
|
||||
public OBJECT serialize(SettingsMap settingsMap) {
|
||||
final OBJECT jsonObject = newOBJECT();
|
||||
serializeToObject(settingsMap, jsonObject);
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
private void serializeToObject(SettingsMap settingsMap, final OBJECT jsonObject) {
|
||||
for (Map.Entry<String, Settings> entry : settingsMap.getSettingsPerComponentId().entrySet()) {
|
||||
String key = entry.getKey();
|
||||
Settings settings = entry.getValue();
|
||||
final Object serializedObject;
|
||||
if(settings instanceof SettingsMap) {
|
||||
serializedObject = serialize((SettingsMap)settings);
|
||||
} else if(settings instanceof GenericSerializableSettings) {
|
||||
serializedObject = serialize((GenericSerializableSettings)settings);
|
||||
if(key == null) {
|
||||
if(settings instanceof SettingsMap) {
|
||||
serializeToObject((SettingsMap)settings, jsonObject);
|
||||
} else if(settings instanceof GenericSerializableSettings) {
|
||||
serializeToObject((GenericSerializableSettings)settings, jsonObject);
|
||||
}
|
||||
} else {
|
||||
serializedObject = null;
|
||||
}
|
||||
if(serializedObject != null) {
|
||||
set(jsonObject, entry.getKey().toString(), serializedObject);
|
||||
final OBJECT serializedObject;
|
||||
if(settings instanceof SettingsMap) {
|
||||
serializedObject = serialize((SettingsMap)settings);
|
||||
} else if(settings instanceof GenericSerializableSettings) {
|
||||
serializedObject = serialize((GenericSerializableSettings)settings);
|
||||
} else {
|
||||
serializedObject = null;
|
||||
}
|
||||
if(serializedObject != null) {
|
||||
set(jsonObject, key.toString(), serializedObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
public OBJECT serialize(GenericSerializableSettings settings) {
|
||||
final OBJECT jsonObject = newOBJECT();
|
||||
serializeToObject(settings, jsonObject);
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
private void serializeToObject(GenericSerializableSettings settings, final OBJECT jsonObject) {
|
||||
for (Map.Entry<String, Setting> entry : settings.getChildSettings().entrySet()) {
|
||||
Setting setting = entry.getValue();
|
||||
if (!setting.isDefaultValue()) {
|
||||
set(jsonObject, entry.getKey(), serialize(setting));
|
||||
}
|
||||
}
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
private Object serialize(Setting setting) {
|
||||
@@ -146,9 +163,15 @@ public abstract class AbstractSettingsToJsonSerializer<OBJECT, ARRAY> {
|
||||
public <T extends SettingsMap> T deserialize(T settingsMap, OBJECT json) {
|
||||
if (json != null) {
|
||||
for (Map.Entry<String, Settings> entry : settingsMap.getSettingsPerComponentId().entrySet()) {
|
||||
String key = entry.getKey().toString();
|
||||
if(hasProperty(json, key)) {
|
||||
Settings settings = entry.getValue();
|
||||
String key = entry.getKey();
|
||||
Settings settings = entry.getValue();
|
||||
if(key == null) {
|
||||
if(settings instanceof SettingsMap) {
|
||||
deserialize((SettingsMap)settings, json);
|
||||
} else if(settings instanceof GenericSerializableSettings) {
|
||||
deserializeObject((GenericSerializableSettings)settings, json);
|
||||
}
|
||||
} else if(hasProperty(json, key)) {
|
||||
Object serializedObject = get(json, key);
|
||||
if(settings instanceof SettingsMap) {
|
||||
@SuppressWarnings("unchecked")
|
||||
|
||||
+3
-2
@@ -37,7 +37,8 @@ public class SettingsToStringMapSerializer {
|
||||
|
||||
private void serialize(String prefix, SettingsMap settingsMap, Map<String, Iterable<String>> serialized) {
|
||||
for (Map.Entry<String, Settings> entry : settingsMap.getSettingsPerComponentId().entrySet()) {
|
||||
String childPrefix = prefix + entry.getKey() + GenericSerializableSettings.PATH_SEPARATOR;
|
||||
String key = entry.getKey();
|
||||
String childPrefix = key == null ? prefix : prefix + key + GenericSerializableSettings.PATH_SEPARATOR;
|
||||
Settings settings = entry.getValue();
|
||||
if(settings instanceof SettingsMap) {
|
||||
serialize(childPrefix, (SettingsMap) settings, serialized);
|
||||
@@ -109,7 +110,7 @@ public class SettingsToStringMapSerializer {
|
||||
for (Map.Entry<String, Settings> entry : childSettings) {
|
||||
final String key = entry.getKey();
|
||||
final Settings settings = entry.getValue();
|
||||
final Map<String, Iterable<String>> innerValues = mappedInnerValues.get(key.toString());
|
||||
final Map<String, Iterable<String>> innerValues = key == null ? values : mappedInnerValues.get(key.toString());
|
||||
if(innerValues != null) {
|
||||
if(settings instanceof SettingsMap) {
|
||||
deserializeSettingsMap((SettingsMap) settings, innerValues);
|
||||
|
||||
+1
-3
@@ -23,8 +23,6 @@ import com.sap.sse.gwt.client.shared.components.CompositeSettings;
|
||||
* is assigned to which component, or how the perspective displays itself, such as embedded or not
|
||||
*/
|
||||
public class PerspectiveCompositeSettings<PS extends Settings> extends CompositeSettings {
|
||||
private static final String OWN_SETTINGS_KEY = "_";
|
||||
|
||||
private final PS perspectiveOwnSettings;
|
||||
|
||||
public PerspectiveCompositeSettings(PS perspectiveOwnSettings, Map<String, Settings> settingsPerComponent) {
|
||||
@@ -60,7 +58,7 @@ public class PerspectiveCompositeSettings<PS extends Settings> extends Composite
|
||||
allSettings = super.getSettingsPerComponentId();
|
||||
} else {
|
||||
allSettings = new HashMap<>(super.getSettingsPerComponentId());
|
||||
allSettings.put(OWN_SETTINGS_KEY, perspectiveOwnSettings);
|
||||
allSettings.put(null, perspectiveOwnSettings);
|
||||
}
|
||||
return allSettings;
|
||||
}
|
||||
|
||||
+18
-1
@@ -27,7 +27,6 @@ public abstract class AbstractSettingsSerializationTestWithSettingsMap<SOT> exte
|
||||
|
||||
@Test
|
||||
public void testSettingsMapWithMultipleSerializableSettings() throws Exception {
|
||||
|
||||
final GenericSerializableSettings settingsValues1 = createTestSettingsWithValues();
|
||||
final GenericSerializableSettings settingsValues2 = createTestSettingsWithValues2();
|
||||
Map<String, Settings> settings = new HashMap<>();
|
||||
@@ -44,6 +43,24 @@ public abstract class AbstractSettingsSerializationTestWithSettingsMap<SOT> exte
|
||||
assertEquals(deserializedSettingsMap.getSettingsPerComponentId().size(), 2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSettingsMapWithNullKey() throws Exception {
|
||||
final GenericSerializableSettings settingsValues1 = createTestSettingsWithValues();
|
||||
final GenericSerializableSettings settingsValues2 = createTestSettingsWithValues2();
|
||||
Map<String, Settings> settings = new HashMap<>();
|
||||
settings.put("aaa", settingsValues1);
|
||||
settings.put(null, settingsValues2);
|
||||
|
||||
SettingsMap settingsMapToSave = new SettingsMapImpl(settings);
|
||||
|
||||
final SettingsMap deserializedSettingsMap = serializeAndDeserialize(settingsMapToSave);
|
||||
Settings deserializedSettingsValues1 = deserializedSettingsMap.getSettingsPerComponentId().get("aaa");
|
||||
Settings deserializedSettingsValues2 = deserializedSettingsMap.getSettingsPerComponentId().get(null);
|
||||
assertEquals(deserializedSettingsValues1, createTestSettingsWithValues());
|
||||
assertEquals(deserializedSettingsValues2, createTestSettingsWithValues2());
|
||||
assertEquals(deserializedSettingsMap.getSettingsPerComponentId().size(), 2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSettingsMapWithNestedSettingsMapWithOneSerializableSettingsChild() throws Exception {
|
||||
final GenericSerializableSettings childSettingsValues = createTestSettingsWithValues();
|
||||
|
||||
Reference in New Issue
Block a user