Isis Developer Reference
|
This class can be used to define import/export behavior of Pvl structures when used in the PvlFlatMap class. More...
#include <PvlFlatMap.h>
Public Member Functions | |
PvlConstraints () | |
Default constructor for an empty PvlConstraints object. | |
PvlConstraints (const QString &keyListFile) | |
Constructs a PvlConstraints object from a file containing PvlKeyword names. | |
virtual | ~PvlConstraints () |
Destructor. | |
int | excludeSize () const |
Returns the number of PvlObjects and PvlGroups to exclude. | |
int | includeSize () const |
Returns the number of PvlObjects and PvlGroups to include. | |
int | keyListSize () const |
Returns the number of PvlKeywords to include. | |
void | addExclude (const QString &name) |
Adds a PvlObject/PvlGroup exclusion constraint. | |
void | addInclude (const QString &name) |
Adds a PvlObject/PvlGroup inclusion constraint. | |
void | addKeyToList (const QString &name) |
Adds a PvlKeyword inclusion constraint. | |
void | addExclude (const QStringList &other) |
Adds multiple PvlObject/PvlGroup exclusion constraints. | |
void | addInclude (const QStringList &other) |
Adds multiple PvlObject/PvlGroup inclusion constraints. | |
void | addKeyToList (const QStringList &other) |
Adds multiple PvlKeyword inclusion constraints. | |
void | addKeyToList (const FileName &fileName) |
Adds PvlKeywords contained in a file to the keyword constraints. | |
bool | isExcluded (const QString &name) const |
Determines if a PvlObject or PvlGroup is excluded. | |
bool | isIncluded (const QString &name) const |
Determines if a PvlObject or PvlGroup is included. | |
bool | isKeyInList (const QString &name) const |
Determines if a PvlKeyword is included. | |
const QStringList & | excludes () const |
Returns the PvlObject/PvlGroup exclusion constraints. | |
const QStringList & | includes () const |
Returns the PvlObject/PvlGroup inclusion constraints. | |
const QStringList & | keyList () const |
Returns the PvlKeyword inclusion constraints. | |
Static Public Member Functions | |
static PvlConstraints | withExcludes (const QStringList &excludes) |
Static method to construct a PvlConstraints object from a list of names for the PvlObjects and PvlGroups to exclude. | |
static PvlConstraints | withIncludes (const QStringList &includes) |
Static method to construct a PvlConstraints object from a list of names for the PvlObjects and PvlGroups to include. | |
This class can be used to define import/export behavior of Pvl structures when used in the PvlFlatMap class.
The include/exclude features are applied to PvlObject and PvlGroup structures.
The keylists apply only to keywords.
Behavior beyond what is provided here is the burden of the programmer.
A complete Pvl structure can be provided in the PvlFlatMap class along with a defined PvlConstraints class containing objects/groups that are included or excluded from import operations. Additionally, users can restrict the contents of all keyword containers to a list of keywords as provided in the keylist in this class. It applies to all PVL keyword containers so ensure the list is comprehensive to include all desired keywords from all containers.
Note if any include containers names are specified, all others are excluded by definition. Likewise, if any containers are excluded, all other keywords containers are included by definition. This behavior is defined to be constrained to the PvlObject and/or PvlGroup levels.
A special mode can be defined by using both the include and exclude feature in combination. Include names are preimenent in this mode including only those PVL structures in the include list and excluding PVL structures in the exclude list. If any keywords exist in the keylist, then they are the only keywords mapped from the PVL stuctures in the include list.
Note that if a PvlGroup/PvlObject is excluded, then every PvlGroup/PvlObject contained within it are also excluded. Similarly, in order for a PvlGroup/PvlObject to be included, then any PvlObject that it is contained in must also be included.
Example PVL:
For the example PVL above, we can do the following:
1) Exclude the Pixels group
2) Include the Pixels group.
3) The following will include everything in the Core object (Pixels, Dimensions, and Core keywords).
4) In some cases we will have a mix of includes/excludes.
Isis::PvlConstraints::PvlConstraints | ( | ) |
Default constructor for an empty PvlConstraints object.
Isis::PvlConstraints::PvlConstraints | ( | const QString & | keyListFile | ) |
Constructs a PvlConstraints object from a file containing PvlKeyword names.
keyListFile | The name of the file containing PvlKeyword names. |
References addKeyToList().
|
virtual |
Destructor.
void Isis::PvlConstraints::addExclude | ( | const QString & | name | ) |
Adds a PvlObject/PvlGroup exclusion constraint.
By providing the name of a PvlObject or PvlGroup object, the object will be excluded when creating a PvlFlatMap from a Pvl structure.
Note that if this structure is contained within a PvlObject, then excluding the top level object also excludes all subgroups/subobjects contained within.
Referenced by withExcludes().
void Isis::PvlConstraints::addExclude | ( | const QStringList & | other | ) |
Adds multiple PvlObject/PvlGroup exclusion constraints.
other | A list of exclusion contraints |
void Isis::PvlConstraints::addInclude | ( | const QString & | name | ) |
Adds a PvlObject/PvlGroup inclusion constraint.
By providing the name of a PvlObject or PvlGroup object, the object will be included when creating a PvlFlapMap from a Pvl structure.
Note that if this structure is contained within a PvlObject, then both must be added to the includes.
Referenced by withIncludes().
void Isis::PvlConstraints::addInclude | ( | const QStringList & | other | ) |
Adds multiple PvlObject/PvlGroup inclusion constraints.
other | A list of inclusion constraints |
void Isis::PvlConstraints::addKeyToList | ( | const FileName & | fileName | ) |
Adds PvlKeywords contained in a file to the keyword constraints.
name | The name of the file that contains the PvlKeywords |
void Isis::PvlConstraints::addKeyToList | ( | const QString & | name | ) |
Adds a PvlKeyword inclusion constraint.
By providing the name of a PvlKeyword, the PvlKeyword will be exclusively included along with any other keyword constraints when creating a PvlFlatMap from a Pvl structure.
name | The QString name of the PvlKeyword to add |
Referenced by PvlConstraints().
void Isis::PvlConstraints::addKeyToList | ( | const QStringList & | other | ) |
Adds multiple PvlKeyword inclusion constraints.
other | A list of PvlKeyword names |
const QStringList & Isis::PvlConstraints::excludes | ( | ) | const |
Returns the PvlObject/PvlGroup exclusion constraints.
Returns the values of the Excludes keyword. Excluded PvlObjects and PvlGroups will not be used during the creation of a PvlFlatMap from a Pvl structure. Refer to the PvlFlatMap class documentation for more information.
Referenced by withExcludes().
int Isis::PvlConstraints::excludeSize | ( | ) | const |
Returns the number of PvlObjects and PvlGroups to exclude.
This method returns the number of values associated with the Excludes keyword.
const QStringList & Isis::PvlConstraints::includes | ( | ) | const |
Returns the PvlObject/PvlGroup inclusion constraints.
Returns the values of the Includes keyword. Included PvlObjects and PvlGroups will exclusively be used during the creation of a PvlFlatMap from a Pvl structure. This means anything not included is automatically excluded. Refer to the PvlFlatMap class documentation for more information.
Referenced by withIncludes().
int Isis::PvlConstraints::includeSize | ( | ) | const |
Returns the number of PvlObjects and PvlGroups to include.
This method returns the number of values associated with the Includes keyword.
bool Isis::PvlConstraints::isExcluded | ( | const QString & | name | ) | const |
bool Isis::PvlConstraints::isIncluded | ( | const QString & | name | ) | const |
bool Isis::PvlConstraints::isKeyInList | ( | const QString & | name | ) | const |
Determines if a PvlKeyword is included.
Checks if a PvlKeyword's name is associated with the KeyListFile keyword.
name | The name of The PvlKeyword |
const QStringList & Isis::PvlConstraints::keyList | ( | ) | const |
Returns the PvlKeyword inclusion constraints.
Returns the values of the KeyListFile keyword. Only PvlKeywords that are specified in the KeyListFile will be included during the creation of a PvlFlatMap. Refer to the PvlFlatMap class documentation for more information.
int Isis::PvlConstraints::keyListSize | ( | ) | const |
Returns the number of PvlKeywords to include.
This method returns the number of values associated with the KeyList keyword. If none of these keyword constraints exist, then all PvlKeywords in a Pvl structure will be included when creating a PvlFlatMap from a Pvl structure.
|
static |
Static method to construct a PvlConstraints object from a list of names for the PvlObjects and PvlGroups to exclude.
excludes | QStringList of names of PvlObjects or PvlGroups to be excluded. |
References addExclude(), and excludes().
Referenced by Isis::Strategy::getDefinitionMap().
|
static |
Static method to construct a PvlConstraints object from a list of names for the PvlObjects and PvlGroups to include.
includes | QStringList of names of PvlObjects or PvlGroups to be included. |
References addInclude(), and includes().