1/*
2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5
6
7#include "SettingsDescription.h"
8
9#include "Setting.h"
10
11
12SettingsDescription::SettingsDescription()
13{
14}
15
16
17SettingsDescription::~SettingsDescription()
18{
19	for (int32 i = 0; Setting* setting = SettingAt(i); i++)
20		setting->ReleaseReference();
21}
22
23
24int32
25SettingsDescription::CountSettings() const
26{
27	return fSettings.CountItems();
28}
29
30
31Setting*
32SettingsDescription::SettingAt(int32 index) const
33{
34	return fSettings.ItemAt(index);
35}
36
37
38Setting*
39SettingsDescription::SettingByID(const char* id) const
40{
41	for (int32 i = 0; Setting* setting = fSettings.ItemAt(i); i++) {
42		if (strcmp(setting->ID(), id) == 0)
43			return setting;
44	}
45
46	return NULL;
47}
48
49
50bool
51SettingsDescription::AddSetting(Setting* setting)
52{
53	if (!fSettings.AddItem(setting))
54		return false;
55
56	setting->AcquireReference();
57	return true;
58}
59