WriterImplBase: Some simplifications
... using the recently introduced _AddStringAttribute[IfNotEmpty]().
This commit is contained in:
@@ -280,51 +280,28 @@ WriterImplBase::RegisterPackageInfo(PackageAttributeList& attributeList,
|
|||||||
const BPackageInfo& packageInfo)
|
const BPackageInfo& packageInfo)
|
||||||
{
|
{
|
||||||
// name
|
// name
|
||||||
PackageAttribute* name = new PackageAttribute(
|
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_NAME, packageInfo.Name(),
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_NAME, B_HPKG_ATTRIBUTE_TYPE_STRING,
|
attributeList);
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
name->string = fPackageStringCache.Get(packageInfo.Name().String());
|
|
||||||
attributeList.Add(name);
|
|
||||||
|
|
||||||
// summary
|
// summary
|
||||||
PackageAttribute* summary = new PackageAttribute(
|
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_SUMMARY,
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_SUMMARY, B_HPKG_ATTRIBUTE_TYPE_STRING,
|
packageInfo.Summary(), attributeList);
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
summary->string = fPackageStringCache.Get(packageInfo.Summary().String());
|
|
||||||
attributeList.Add(summary);
|
|
||||||
|
|
||||||
// description
|
// description
|
||||||
PackageAttribute* description = new PackageAttribute(
|
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_DESCRIPTION,
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_DESCRIPTION, B_HPKG_ATTRIBUTE_TYPE_STRING,
|
packageInfo.Description(), attributeList);
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
description->string
|
|
||||||
= fPackageStringCache.Get(packageInfo.Description().String());
|
|
||||||
attributeList.Add(description);
|
|
||||||
|
|
||||||
// vendor
|
// vendor
|
||||||
PackageAttribute* vendor = new PackageAttribute(
|
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_VENDOR,
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_VENDOR, B_HPKG_ATTRIBUTE_TYPE_STRING,
|
packageInfo.Vendor(), attributeList);
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
vendor->string = fPackageStringCache.Get(packageInfo.Vendor().String());
|
|
||||||
attributeList.Add(vendor);
|
|
||||||
|
|
||||||
// packager
|
// packager
|
||||||
PackageAttribute* packager = new PackageAttribute(
|
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_PACKAGER,
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_PACKAGER, B_HPKG_ATTRIBUTE_TYPE_STRING,
|
packageInfo.Packager(), attributeList);
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
packager->string = fPackageStringCache.Get(packageInfo.Packager().String());
|
|
||||||
attributeList.Add(packager);
|
|
||||||
|
|
||||||
// base package (optional)
|
// base package (optional)
|
||||||
if (!packageInfo.BasePackage().IsEmpty()) {
|
_AddStringAttributeIfNotEmpty(B_HPKG_ATTRIBUTE_ID_PACKAGE_BASE_PACKAGE,
|
||||||
PackageAttribute* basePackage = new PackageAttribute(
|
packageInfo.BasePackage(), attributeList);
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_BASE_PACKAGE,
|
|
||||||
B_HPKG_ATTRIBUTE_TYPE_STRING,
|
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
basePackage->string
|
|
||||||
= fPackageStringCache.Get(packageInfo.BasePackage());
|
|
||||||
attributeList.Add(basePackage);
|
|
||||||
}
|
|
||||||
|
|
||||||
// flags
|
// flags
|
||||||
PackageAttribute* flags = new PackageAttribute(
|
PackageAttribute* flags = new PackageAttribute(
|
||||||
@@ -346,42 +323,29 @@ WriterImplBase::RegisterPackageInfo(PackageAttributeList& attributeList,
|
|||||||
// copyright list
|
// copyright list
|
||||||
const BStringList& copyrightList = packageInfo.CopyrightList();
|
const BStringList& copyrightList = packageInfo.CopyrightList();
|
||||||
for (int i = 0; i < copyrightList.CountStrings(); ++i) {
|
for (int i = 0; i < copyrightList.CountStrings(); ++i) {
|
||||||
PackageAttribute* copyright = new PackageAttribute(
|
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_COPYRIGHT,
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_COPYRIGHT, B_HPKG_ATTRIBUTE_TYPE_STRING,
|
copyrightList.StringAt(i), attributeList);
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
copyright->string = fPackageStringCache.Get(copyrightList.StringAt(i));
|
|
||||||
attributeList.Add(copyright);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// license list
|
// license list
|
||||||
const BStringList& licenseList = packageInfo.LicenseList();
|
const BStringList& licenseList = packageInfo.LicenseList();
|
||||||
for (int i = 0; i < licenseList.CountStrings(); ++i) {
|
for (int i = 0; i < licenseList.CountStrings(); ++i) {
|
||||||
PackageAttribute* license = new PackageAttribute(
|
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_LICENSE,
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_LICENSE, B_HPKG_ATTRIBUTE_TYPE_STRING,
|
licenseList.StringAt(i), attributeList);
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
license->string = fPackageStringCache.Get(licenseList.StringAt(i));
|
|
||||||
attributeList.Add(license);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// URL list
|
// URL list
|
||||||
const BStringList& urlList = packageInfo.URLList();
|
const BStringList& urlList = packageInfo.URLList();
|
||||||
for (int i = 0; i < urlList.CountStrings(); ++i) {
|
for (int i = 0; i < urlList.CountStrings(); ++i) {
|
||||||
PackageAttribute* url = new PackageAttribute(
|
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_URL,
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_URL, B_HPKG_ATTRIBUTE_TYPE_STRING,
|
urlList.StringAt(i), attributeList);
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
url->string = fPackageStringCache.Get(urlList.StringAt(i));
|
|
||||||
attributeList.Add(url);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// source URL list
|
// source URL list
|
||||||
const BStringList& sourceURLList = packageInfo.SourceURLList();
|
const BStringList& sourceURLList = packageInfo.SourceURLList();
|
||||||
for (int i = 0; i < sourceURLList.CountStrings(); ++i) {
|
for (int i = 0; i < sourceURLList.CountStrings(); ++i) {
|
||||||
PackageAttribute* url = new PackageAttribute(
|
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_SOURCE_URL,
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_SOURCE_URL,
|
sourceURLList.StringAt(i), attributeList);
|
||||||
B_HPKG_ATTRIBUTE_TYPE_STRING,
|
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
url->string = fPackageStringCache.Get(sourceURLList.StringAt(i));
|
|
||||||
attributeList.Add(url);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// provides list
|
// provides list
|
||||||
@@ -393,11 +357,9 @@ WriterImplBase::RegisterPackageInfo(PackageAttributeList& attributeList,
|
|||||||
bool hasCompatibleVersion
|
bool hasCompatibleVersion
|
||||||
= resolvable->CompatibleVersion().InitCheck() == B_OK;
|
= resolvable->CompatibleVersion().InitCheck() == B_OK;
|
||||||
|
|
||||||
PackageAttribute* provides = new PackageAttribute(
|
PackageAttribute* provides = _AddStringAttribute(
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_PROVIDES, B_HPKG_ATTRIBUTE_TYPE_STRING,
|
B_HPKG_ATTRIBUTE_ID_PACKAGE_PROVIDES, resolvable->Name(),
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
attributeList);
|
||||||
provides->string = fPackageStringCache.Get(resolvable->Name().String());
|
|
||||||
attributeList.Add(provides);
|
|
||||||
|
|
||||||
if (hasVersion)
|
if (hasVersion)
|
||||||
RegisterPackageVersion(provides->children, resolvable->Version());
|
RegisterPackageVersion(provides->children, resolvable->Version());
|
||||||
@@ -428,11 +390,8 @@ WriterImplBase::RegisterPackageInfo(PackageAttributeList& attributeList,
|
|||||||
// replaces list
|
// replaces list
|
||||||
const BStringList& replacesList = packageInfo.ReplacesList();
|
const BStringList& replacesList = packageInfo.ReplacesList();
|
||||||
for (int i = 0; i < replacesList.CountStrings(); ++i) {
|
for (int i = 0; i < replacesList.CountStrings(); ++i) {
|
||||||
PackageAttribute* replaces = new PackageAttribute(
|
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_REPLACES,
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_REPLACES, B_HPKG_ATTRIBUTE_TYPE_STRING,
|
replacesList.StringAt(i), attributeList);
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
replaces->string = fPackageStringCache.Get(replacesList.StringAt(i));
|
|
||||||
attributeList.Add(replaces);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// global settings file info list
|
// global settings file info list
|
||||||
@@ -440,12 +399,9 @@ WriterImplBase::RegisterPackageInfo(PackageAttributeList& attributeList,
|
|||||||
= packageInfo.GlobalSettingsFileInfos();
|
= packageInfo.GlobalSettingsFileInfos();
|
||||||
for (int32 i = 0; i < globalSettingsFileInfos.CountItems(); ++i) {
|
for (int32 i = 0; i < globalSettingsFileInfos.CountItems(); ++i) {
|
||||||
BGlobalSettingsFileInfo* info = globalSettingsFileInfos.ItemAt(i);
|
BGlobalSettingsFileInfo* info = globalSettingsFileInfos.ItemAt(i);
|
||||||
PackageAttribute* attribute = new PackageAttribute(
|
PackageAttribute* attribute = _AddStringAttribute(
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_GLOBAL_SETTINGS_FILE,
|
B_HPKG_ATTRIBUTE_ID_PACKAGE_GLOBAL_SETTINGS_FILE, info->Path(),
|
||||||
B_HPKG_ATTRIBUTE_TYPE_STRING,
|
attributeList);
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
attribute->string = fPackageStringCache.Get(info->Path());
|
|
||||||
attributeList.Add(attribute);
|
|
||||||
|
|
||||||
if (info->IsIncluded()) {
|
if (info->IsIncluded()) {
|
||||||
PackageAttribute* updateTypeAttribute = new PackageAttribute(
|
PackageAttribute* updateTypeAttribute = new PackageAttribute(
|
||||||
@@ -462,22 +418,13 @@ WriterImplBase::RegisterPackageInfo(PackageAttributeList& attributeList,
|
|||||||
= packageInfo.UserSettingsFileInfos();
|
= packageInfo.UserSettingsFileInfos();
|
||||||
for (int32 i = 0; i < userSettingsFileInfos.CountItems(); ++i) {
|
for (int32 i = 0; i < userSettingsFileInfos.CountItems(); ++i) {
|
||||||
BUserSettingsFileInfo* info = userSettingsFileInfos.ItemAt(i);
|
BUserSettingsFileInfo* info = userSettingsFileInfos.ItemAt(i);
|
||||||
PackageAttribute* attribute = new PackageAttribute(
|
PackageAttribute* attribute = _AddStringAttribute(
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_USER_SETTINGS_FILE,
|
B_HPKG_ATTRIBUTE_ID_PACKAGE_USER_SETTINGS_FILE, info->Path(),
|
||||||
B_HPKG_ATTRIBUTE_TYPE_STRING,
|
attributeList);
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
attribute->string = fPackageStringCache.Get(info->Path());
|
|
||||||
attributeList.Add(attribute);
|
|
||||||
|
|
||||||
if (!info->TemplatePath().IsEmpty()) {
|
_AddStringAttributeIfNotEmpty(
|
||||||
PackageAttribute* templatePathAttribute = new PackageAttribute(
|
B_HPKG_ATTRIBUTE_ID_PACKAGE_SETTINGS_FILE_TEMPLATE,
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_SETTINGS_FILE_TEMPLATE,
|
info->TemplatePath(), attribute->children);
|
||||||
B_HPKG_ATTRIBUTE_TYPE_STRING,
|
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
templatePathAttribute->string
|
|
||||||
= fPackageStringCache.Get(info->TemplatePath());
|
|
||||||
attribute->children.Add(templatePathAttribute);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// user list
|
// user list
|
||||||
@@ -511,25 +458,12 @@ WriterImplBase::RegisterPackageInfo(PackageAttributeList& attributeList,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// checksum (optional, only exists in repositories)
|
// checksum (optional, only exists in repositories)
|
||||||
if (packageInfo.Checksum().Length() > 0) {
|
_AddStringAttributeIfNotEmpty(B_HPKG_ATTRIBUTE_ID_PACKAGE_CHECKSUM,
|
||||||
PackageAttribute* checksum = new PackageAttribute(
|
packageInfo.Checksum(), attributeList);
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_CHECKSUM, B_HPKG_ATTRIBUTE_TYPE_STRING,
|
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
checksum->string
|
|
||||||
= fPackageStringCache.Get(packageInfo.Checksum().String());
|
|
||||||
attributeList.Add(checksum);
|
|
||||||
}
|
|
||||||
|
|
||||||
// install path (optional)
|
// install path (optional)
|
||||||
if (!packageInfo.InstallPath().IsEmpty()) {
|
_AddStringAttributeIfNotEmpty(B_HPKG_ATTRIBUTE_ID_PACKAGE_INSTALL_PATH,
|
||||||
PackageAttribute* installPath = new PackageAttribute(
|
packageInfo.InstallPath(), attributeList);
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_INSTALL_PATH,
|
|
||||||
B_HPKG_ATTRIBUTE_TYPE_STRING,
|
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
installPath->string = fPackageStringCache.Get(
|
|
||||||
packageInfo.InstallPath().String());
|
|
||||||
attributeList.Add(installPath);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -537,41 +471,20 @@ void
|
|||||||
WriterImplBase::RegisterPackageVersion(PackageAttributeList& attributeList,
|
WriterImplBase::RegisterPackageVersion(PackageAttributeList& attributeList,
|
||||||
const BPackageVersion& version, BHPKGAttributeID attributeID)
|
const BPackageVersion& version, BHPKGAttributeID attributeID)
|
||||||
{
|
{
|
||||||
PackageAttribute* versionMajor = new PackageAttribute(
|
PackageAttribute* versionMajor = _AddStringAttribute(attributeID,
|
||||||
attributeID, B_HPKG_ATTRIBUTE_TYPE_STRING,
|
version.Major(), attributeList);
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
versionMajor->string = fPackageStringCache.Get(version.Major().String());
|
|
||||||
attributeList.Add(versionMajor);
|
|
||||||
|
|
||||||
if (version.Minor().Length() > 0) {
|
if (!version.Minor().IsEmpty()) {
|
||||||
PackageAttribute* versionMinor = new PackageAttribute(
|
_AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_VERSION_MINOR,
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_VERSION_MINOR,
|
version.Minor(), versionMajor->children);
|
||||||
B_HPKG_ATTRIBUTE_TYPE_STRING,
|
_AddStringAttributeIfNotEmpty(
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
B_HPKG_ATTRIBUTE_ID_PACKAGE_VERSION_MICRO, version.Micro(),
|
||||||
versionMinor->string
|
versionMajor->children);
|
||||||
= fPackageStringCache.Get(version.Minor().String());
|
|
||||||
versionMajor->children.Add(versionMinor);
|
|
||||||
|
|
||||||
if (version.Micro().Length() > 0) {
|
|
||||||
PackageAttribute* versionMicro = new PackageAttribute(
|
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_VERSION_MICRO,
|
|
||||||
B_HPKG_ATTRIBUTE_TYPE_STRING,
|
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
versionMicro->string
|
|
||||||
= fPackageStringCache.Get(version.Micro().String());
|
|
||||||
versionMajor->children.Add(versionMicro);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!version.PreRelease().IsEmpty()) {
|
_AddStringAttributeIfNotEmpty(
|
||||||
PackageAttribute* preRelease = new PackageAttribute(
|
B_HPKG_ATTRIBUTE_ID_PACKAGE_VERSION_PRE_RELEASE,
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_VERSION_PRE_RELEASE,
|
version.PreRelease(), versionMajor->children);
|
||||||
B_HPKG_ATTRIBUTE_TYPE_STRING,
|
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
preRelease->string
|
|
||||||
= fPackageStringCache.Get(version.PreRelease().String());
|
|
||||||
versionMajor->children.Add(preRelease);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (version.Revision() != 0) {
|
if (version.Revision() != 0) {
|
||||||
PackageAttribute* versionRevision = new PackageAttribute(
|
PackageAttribute* versionRevision = new PackageAttribute(
|
||||||
@@ -590,15 +503,10 @@ WriterImplBase::RegisterPackageResolvableExpressionList(
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < expressionList.CountItems(); ++i) {
|
for (int i = 0; i < expressionList.CountItems(); ++i) {
|
||||||
BPackageResolvableExpression* resolvableExpr = expressionList.ItemAt(i);
|
BPackageResolvableExpression* resolvableExpr = expressionList.ItemAt(i);
|
||||||
bool hasVersion = resolvableExpr->Version().InitCheck() == B_OK;
|
PackageAttribute* name = _AddStringAttribute((BHPKGAttributeID)id,
|
||||||
|
resolvableExpr->Name(), attributeList);
|
||||||
|
|
||||||
PackageAttribute* name = new PackageAttribute((BHPKGAttributeID)id,
|
if (resolvableExpr->Version().InitCheck() == B_OK) {
|
||||||
B_HPKG_ATTRIBUTE_TYPE_STRING,
|
|
||||||
B_HPKG_ATTRIBUTE_ENCODING_STRING_TABLE);
|
|
||||||
name->string = fPackageStringCache.Get(resolvableExpr->Name().String());
|
|
||||||
attributeList.Add(name);
|
|
||||||
|
|
||||||
if (hasVersion) {
|
|
||||||
PackageAttribute* op = new PackageAttribute(
|
PackageAttribute* op = new PackageAttribute(
|
||||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_RESOLVABLE_OPERATOR,
|
B_HPKG_ATTRIBUTE_ID_PACKAGE_RESOLVABLE_OPERATOR,
|
||||||
B_HPKG_ATTRIBUTE_TYPE_UINT,
|
B_HPKG_ATTRIBUTE_TYPE_UINT,
|
||||||
|
|||||||
Reference in New Issue
Block a user