/** * Acedia's class for defining user group in config files. * Copyright 2022 Anton Tarasenko *------------------------------------------------------------------------------ * This file is part of Acedia. * * Acedia is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, version 3 of the License, or * (at your option) any later version. * * Acedia is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Acedia. If not, see . */ class UserGroup extends AcediaConfig perobjectconfig config(AcediaUsers); var public config array user; protected function HashTable ToData() { local int i; local HashTable data; local ArrayList wrappedUserArray; data = __().collections.EmptyHashTable(); wrappedUserArray = __().collections.EmptyArrayList(); for (i = 0; i < user.length; i += 1) { wrappedUserArray.AddString(user[i]); } data.SetItem(P("user"), wrappedUserArray); wrappedUserArray.FreeSelf(); return data; } protected function FromData(HashTable source) { local int i; local ArrayList wrappedUserArray; DefaultIt(); if (source == none) { return; } wrappedUserArray = source.GetArrayList(P("user")); if (wrappedUserArray == none) { return; } for (i = 0; i < wrappedUserArray.GetLength(); i += 1) { user[user.length] = wrappedUserArray.GetString(i); } wrappedUserArray.FreeSelf(); } protected function DefaultIt() { user.length = 0; } defaultproperties { configName = "AcediaUsers" supportsDataConversion = true }