BPackageInfo: Add Matches()
Checks whether the package satisfies the given BPackageResolvableExpression.
This commit is contained in:
@@ -105,6 +105,9 @@ public:
|
|||||||
|
|
||||||
BString CanonicalFileName() const;
|
BString CanonicalFileName() const;
|
||||||
|
|
||||||
|
bool Matches(const BPackageResolvableExpression&
|
||||||
|
expression) const;
|
||||||
|
|
||||||
void SetName(const BString& name);
|
void SetName(const BString& name);
|
||||||
void SetSummary(const BString& summary);
|
void SetSummary(const BString& summary);
|
||||||
void SetDescription(const BString& description);
|
void SetDescription(const BString& description);
|
||||||
|
|||||||
@@ -582,6 +582,27 @@ BPackageInfo::CanonicalFileName() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
BPackageInfo::Matches(const BPackageResolvableExpression& expression) const
|
||||||
|
{
|
||||||
|
// check for an explicit match on the package
|
||||||
|
if (expression.Name().StartsWith("pkg:")) {
|
||||||
|
return fName == expression.Name().String() + 4
|
||||||
|
&& expression.Matches(fVersion, fVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
// search for a matching provides
|
||||||
|
int32 count = fProvidesList.CountItems();
|
||||||
|
for (int32 i = 0; i < count; i++) {
|
||||||
|
const BPackageResolvable* provides = fProvidesList.ItemAt(i);
|
||||||
|
if (expression.Matches(*provides))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BPackageInfo::SetName(const BString& name)
|
BPackageInfo::SetName(const BString& name)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user