SMTK  @SMTK_VERSION@
Simulation Modeling Tool Kit
Public Types | Public Member Functions | Static Public Member Functions | List of all members
smtk::attribute::Categories::Set Class Reference

Categories::Set represents a single category constraint used by the Categories class. More...

#include <Categories.h>

Public Types

using CombinationMode = Categories::CombinationMode
 

Public Member Functions

const std::set< std::string > & includedCategoryNames () const
 Return the set of category names associated with the inclusion set.
 
void setInclusions (const std::set< std::string > &values, Set::CombinationMode mode)
 Set the mode and category names of the inclusion set.
 
const std::set< std::string > & excludedCategoryNames () const
 Return the set of category names associated with the exclusion set.
 
void setExclusions (const std::set< std::string > &values, Set::CombinationMode mode)
 Set the mode and category names of the exclusion set.
 
void insertInclusion (const std::string &val)
 Add a category name to the inclusion set.
 
void insertExclusion (const std::string &val)
 Add a category name to the exclusion set.
 
void eraseInclusion (const std::string &val)
 Remove a category name from the inclusion set.
 
void eraseExclusion (const std::string &val)
 Remove a category name from the exclusion set.
 
void reset ()
 Remove all names from both inclusion and exclusion sets.
 
bool empty () const
 Returns true if both the inclusion and exclusion sets are empty and the combination mode is set to And since this would represent a set that matches nothing.
 
std::size_t inclusionSize () const
 Returns the number of category names in the inclusion set.
 
std::size_t exclusionSize () const
 Returns the number of category names in the exclusion set.
 
int compare (const Set &rhs) const
 Compares with other set - returns -1 if this < rhs, 0 if they are equal, and 1 if this > rhs.
 
std::string convertToString (const std::string &prefix="") const
 
Set::CombinationMode combinationMode () const
 Set/Get the how the sets of included and excluded categories are combined.
 
bool setCombinationMode (const Set::CombinationMode &newMode)
 Set/Get the how the sets of included and excluded categories are combined.
 
Set::CombinationMode inclusionMode () const
 Set/Get the CombinationMode associated with the included categories.
 
void setInclusionMode (const Set::CombinationMode &newMode)
 Set/Get the CombinationMode associated with the included categories.
 
Set::CombinationMode exclusionMode () const
 Set/Get the CombinationMode associated with the excluded categories.
 
void setExclusionMode (const Set::CombinationMode &newMode)
 Set/Get the CombinationMode associated with the excluded categories.
 
bool passes (const std::set< std::string > &cats) const
 Return true if the input set of categories satisfies the Set's constraints. More...
 
bool passes (const std::string &cat) const
 Return true if the input set of categories satisfies the Set's constraints. More...
 

Static Public Member Functions

static bool passesCheck (const std::set< std::string > &cats, const std::set< std::string > &testSet, Set::CombinationMode comboMode)
 

Detailed Description

Categories::Set represents a single category constraint used by the Categories class.

A Set consists of two sets of category names representing the categories that should exist (inclusion) and the categories that should not exist (exclusion). Each set also has a combination mode associated with it. For example if the inclusion mode is Or then the inclusion set's constraint is satisfied if any of its categories names exists in a input set of category names. Else the inclusion mode is And, then all of the inclusion set's names must exist in the input set. In the case of the exclusion set , the result is the complement. So exclusion mode = Or means the exclusion test fails if any of the excluded names are in the input while And means that only if all of the names in the exclusion set are in the input will the test fail.

There is also a top level combination mode that determines how the inclusion and exclusion results are combined. If the top mode is And then both the inclusion and exclusion checks must pass while Or means only one of the checks need to pass.

Special notes: If the top combination mode is And and the inclusion set is empty, then the passes check will always fail. If the top combination mode is Or and the exclusion set is empty, then the passes check will always succeed.

Member Function Documentation

◆ passes() [1/2]

bool Categories::Set::passes ( const std::set< std::string > &  cats) const

Return true if the input set of categories satisfies the Set's constraints.

If the input set is empty then the method will return true. Else if the instance's mode is Or then at least one of its category names must be in the input set. If the mode is And then all of the instance's names must be in the input set.

◆ passes() [2/2]

bool Categories::Set::passes ( const std::string &  cat) const

Return true if the input set of categories satisfies the Set's constraints.

If the input set is empty then the method will return true. Else if the instance's mode is Or then at least one of its category names must be in the input set. If the mode is And then all of the instance's names must be in the input set.


The documentation for this class was generated from the following files: