WriterImplBase: Add _AddStringAttributeList()

... and simplify some code by using it.
This commit is contained in:
Ingo Weinhold
2013-05-25 01:12:38 +02:00
parent a11b0003ec
commit a3e070a7ff
2 changed files with 26 additions and 35 deletions
@@ -169,6 +169,9 @@ private:
inline PackageAttribute* _AddStringAttributeIfNotEmpty(
BHPKGAttributeID id, const BString& value,
DoublyLinkedList<PackageAttribute>& list);
void _AddStringAttributeList(BHPKGAttributeID id,
const BStringList& value,
DoublyLinkedList<PackageAttribute>& list);
void _WritePackageAttributes(
const PackageAttributeList& attributes);
+23 -35
View File
@@ -321,32 +321,20 @@ WriterImplBase::RegisterPackageInfo(PackageAttributeList& attributeList,
RegisterPackageVersion(attributeList, packageInfo.Version());
// copyright list
const BStringList& copyrightList = packageInfo.CopyrightList();
for (int i = 0; i < copyrightList.CountStrings(); ++i) {
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_COPYRIGHT,
copyrightList.StringAt(i), attributeList);
}
_AddStringAttributeList(B_HPKG_ATTRIBUTE_ID_PACKAGE_COPYRIGHT,
packageInfo.CopyrightList(), attributeList);
// license list
const BStringList& licenseList = packageInfo.LicenseList();
for (int i = 0; i < licenseList.CountStrings(); ++i) {
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_LICENSE,
licenseList.StringAt(i), attributeList);
}
_AddStringAttributeList(B_HPKG_ATTRIBUTE_ID_PACKAGE_LICENSE,
packageInfo.LicenseList(), attributeList);
// URL list
const BStringList& urlList = packageInfo.URLList();
for (int i = 0; i < urlList.CountStrings(); ++i) {
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_URL,
urlList.StringAt(i), attributeList);
}
_AddStringAttributeList(B_HPKG_ATTRIBUTE_ID_PACKAGE_URL,
packageInfo.URLList(), attributeList);
// source URL list
const BStringList& sourceURLList = packageInfo.SourceURLList();
for (int i = 0; i < sourceURLList.CountStrings(); ++i) {
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_SOURCE_URL,
sourceURLList.StringAt(i), attributeList);
}
_AddStringAttributeList(B_HPKG_ATTRIBUTE_ID_PACKAGE_SOURCE_URL,
packageInfo.SourceURLList(), attributeList);
// provides list
const BObjectList<BPackageResolvable>& providesList
@@ -388,11 +376,8 @@ WriterImplBase::RegisterPackageInfo(PackageAttributeList& attributeList,
packageInfo.FreshensList(), B_HPKG_ATTRIBUTE_ID_PACKAGE_FRESHENS);
// replaces list
const BStringList& replacesList = packageInfo.ReplacesList();
for (int i = 0; i < replacesList.CountStrings(); ++i) {
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_REPLACES,
replacesList.StringAt(i), attributeList);
}
_AddStringAttributeList(B_HPKG_ATTRIBUTE_ID_PACKAGE_REPLACES,
packageInfo.ReplacesList(), attributeList);
// global settings file info list
const BObjectList<BGlobalSettingsFileInfo>& globalSettingsFileInfos
@@ -451,18 +436,12 @@ WriterImplBase::RegisterPackageInfo(PackageAttributeList& attributeList,
}
// group list
const BStringList& groups = packageInfo.Groups();
for (int32 i = 0; i < groups.CountStrings(); i++) {
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_GROUP,
groups.StringAt(i), attributeList);
}
_AddStringAttributeList(B_HPKG_ATTRIBUTE_ID_PACKAGE_GROUP,
packageInfo.Groups(), attributeList);
// post install script list
const BStringList& postInstallScripts = packageInfo.PostInstallScripts();
for (int32 i = 0; i < postInstallScripts.CountStrings(); i++) {
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_POST_INSTALL_SCRIPT,
postInstallScripts.StringAt(i), attributeList);
}
_AddStringAttributeList(B_HPKG_ATTRIBUTE_ID_PACKAGE_POST_INSTALL_SCRIPT,
packageInfo.PostInstallScripts(), attributeList);
// checksum (optional, only exists in repositories)
_AddStringAttributeIfNotEmpty(B_HPKG_ATTRIBUTE_ID_PACKAGE_CHECKSUM,
@@ -697,6 +676,15 @@ WriterImplBase::_AddStringAttribute(BHPKGAttributeID id, const BString& value,
}
void
WriterImplBase::_AddStringAttributeList(BHPKGAttributeID id,
const BStringList& value, DoublyLinkedList<PackageAttribute>& list)
{
for (int32 i = 0; i < value.CountStrings(); i++)
_AddStringAttribute(id, value.StringAt(i), list);
}
void
WriterImplBase::_WritePackageAttributes(
const PackageAttributeList& packageAttributes)