1 import "GlobalAppSettings"
4 public class JSONGlobalSettings : GlobalSettingsDriver
6 class_property(name) = "JSON";
9 SettingsIOResult ::Load(File f, GlobalSettings globalSettings)
11 SettingsIOResult result = error;
12 //if(globalSettings.data)
14 JSONParser parser { f = f };
15 JSONResult jsonResult;
16 subclass(GlobalSettingsData) dataClass = globalSettings.dataClass;
17 if(!dataClass && globalSettings.data)
18 dataClass = (subclass(GlobalSettingsData))globalSettings.data._class;
21 jsonResult = parser.GetObject(dataClass, &globalSettings.data);
22 if(globalSettings.data)
24 if(globalSettings.dataOwner)
26 delete *globalSettings.dataOwner;
27 *globalSettings.dataOwner = globalSettings.data;
31 else if(jsonResult == syntaxError || jsonResult == noItem)
33 delete globalSettings.data;
34 globalSettings.data = *globalSettings.dataOwner;
35 result = fileNotCompatibleWithDriver;
42 SettingsIOResult ::Save(File f, GlobalSettings globalSettings)
44 SettingsIOResult result = error;
45 if(globalSettings && WriteJSONObject(f, globalSettings.data._class, globalSettings.data, 0))