1/*
2 * Copyright 2003-2004, Axel Dörfler, axeld@pinc-software.de
3 * Copyright 2003-2004,2012, Oliver Tappe, zooey@hirschkaefer.de
4 * Distributed under the terms of the MIT License.
5 */
6
7#include <EditableCatalog.h>
8
9#include <CatalogData.h>
10#include <MutableLocaleRoster.h>
11
12
13using BPrivate::MutableLocaleRoster;
14
15
16namespace BPrivate {
17EditableCatalog::EditableCatalog(const char* type, const char* signature,
18	const char* language)
19{
20	fCatalogData = MutableLocaleRoster::Default()->CreateCatalog(type,
21		signature, language);
22}
23
24
25EditableCatalog::~EditableCatalog()
26{
27}
28
29
30status_t
31EditableCatalog::SetString(const char* string, const char* translated,
32	const char* context, const char* comment)
33{
34	if (fCatalogData == NULL)
35		return B_NO_INIT;
36
37	return fCatalogData->SetString(string, translated, context, comment);
38}
39
40
41status_t
42EditableCatalog::SetString(int32 id, const char* translated)
43{
44	if (fCatalogData == NULL)
45		return B_NO_INIT;
46
47	return fCatalogData->SetString(id, translated);
48}
49
50
51bool
52EditableCatalog::CanWriteData() const
53{
54	if (fCatalogData == NULL)
55		return false;
56
57	return fCatalogData->CanWriteData();
58}
59
60
61status_t
62EditableCatalog::SetData(const char* name, BMessage* msg)
63{
64	if (fCatalogData == NULL)
65		return B_NO_INIT;
66
67	return fCatalogData->SetData(name, msg);
68}
69
70
71status_t
72EditableCatalog::SetData(uint32 id, BMessage* msg)
73{
74	if (fCatalogData == NULL)
75		return B_NO_INIT;
76
77	return fCatalogData->SetData(id, msg);
78}
79
80
81status_t
82EditableCatalog::ReadFromFile(const char* path)
83{
84	if (fCatalogData == NULL)
85		return B_NO_INIT;
86
87	return fCatalogData->ReadFromFile(path);
88}
89
90
91status_t
92EditableCatalog::ReadFromAttribute(const entry_ref& appOrAddOnRef)
93{
94	if (fCatalogData == NULL)
95		return B_NO_INIT;
96
97	return fCatalogData->ReadFromAttribute(appOrAddOnRef);
98}
99
100
101status_t
102EditableCatalog::ReadFromResource(const entry_ref& appOrAddOnRef)
103{
104	if (fCatalogData == NULL)
105		return B_NO_INIT;
106
107	return fCatalogData->ReadFromResource(appOrAddOnRef);
108}
109
110
111status_t
112EditableCatalog::WriteToFile(const char* path)
113{
114	if (fCatalogData == NULL)
115		return B_NO_INIT;
116
117	return fCatalogData->WriteToFile(path);
118}
119
120
121status_t
122EditableCatalog::WriteToAttribute(const entry_ref& appOrAddOnRef)
123{
124	if (fCatalogData == NULL)
125		return B_NO_INIT;
126
127	return fCatalogData->WriteToAttribute(appOrAddOnRef);
128}
129
130
131status_t
132EditableCatalog::WriteToResource(const entry_ref& appOrAddOnRef)
133{
134	if (fCatalogData == NULL)
135		return B_NO_INIT;
136
137	return fCatalogData->WriteToResource(appOrAddOnRef);
138}
139
140
141void EditableCatalog::MakeEmpty()
142{
143	if (fCatalogData != NULL)
144		fCatalogData->MakeEmpty();
145}
146
147
148BCatalogData*
149EditableCatalog::CatalogData()
150{
151	return fCatalogData;
152}
153
154
155} // namespace BPrivate
156