Isis 3 Programmer Reference
Isis::SerialNumber Class Reference

Serial Number composer. More...

#include <SerialNumber.h>

Inheritance diagram for Isis::SerialNumber:
Inheritance graph
Collaboration diagram for Isis::SerialNumber:
Collaboration graph

Public Member Functions

 SerialNumber ()
 Create an empty SerialNumber object. More...
 
virtual ~SerialNumber ()
 Destroy a SerialNumber object. More...
 

Static Public Member Functions

static QString Compose (Pvl &label, bool def2filename=false)
 Compose a SerialNumber from a PVL. More...
 
static QString Compose (Cube &cube, bool def2filename=false)
 Compose a SerialNumber from a Cube. More...
 
static QString Compose (const QString &filename, bool def2filename=false)
 Compose a SerialNumber from a file. More...
 
static QString ComposeObservation (const QString &sn, SerialNumberList &list, bool def2filename=false)
 Creates the ObservationNumber from a string representing the SerialNumber and a SerialList. More...
 

Static Protected Member Functions

static QString CreateSerialNumber (PvlGroup &snGroup, int key)
 Create the SerialNumber string by concatenating the keywords in the label with '/' in between serialNumber groups and the number of observationKeys. More...
 

Static Private Member Functions

static PvlGroup FindSerialTranslation (Pvl &label)
 Get Groups by translating from correct Translation table. More...
 

Detailed Description

Serial Number composer.

A Serial Number is a unique identification for some object such as an Isis cube. A Serial Number for a specific object must be repeatable. This class is intended to be used to create all Serial Numbers for Isis.

Author
2005-07-28 Stuart Sides
Todo:
This is only a temporary version. The code needs to be modified to use a PVL file to determine which keywords to use to create the Serial Number
History:
2005-07-28 Stuart Sides Original version
History:
2005-08-02 Jeff Anderson added new static methods for serial number composition from a cube or filename
History:
2006-01-24 Jacob Danton Updated the SerialNumber Compose method to use .trn files specific to the mission
History:
2006-06-15 Kris Becker Added the return of the filename as the fallback default condition. "Unknown" will still be returned if the input source is a label created in memory and does not have a valid serial number signature and it was not read in from a file. Add a test for this to the unitTest.
History:
2006-12-08 Stuart Sides Added parameter the the Compose methods to allow or disallow defaulting to the filename. This parameter has a default of false. Which will cause "Unknown" to be returned for files where a SN could not be correctly produced.
History:
2007-07-09 Steven Lambright Changed missions translation filename from Missions.trn to MissionName2DataDir.trn
History:
2007-09-11 Steven Koechle Added three ComposeObservation methods and made code reusable by seperating existing code into two private methods.
History:
2007-09-13 Steven Koechle Fixed boolean paramaters passed into FindSerialTranslation
History:
2008-01-10 Christpher Austin Removed the use of the system default file in FindSerialTranslation() and detached ObservationNumber functionality into its own class
History:
2008-05-09 Steven Lambright Optimized the FindSerialTranslation method
History:
2008-05-18 Steven Lambright Fixed documentation
History:
2020-03-03 Kristin Berry - Updated to use translation files moved into source. References #3727.

Definition at line 71 of file SerialNumber.h.

Constructor & Destructor Documentation

◆ SerialNumber()

Isis::SerialNumber::SerialNumber ( )

Create an empty SerialNumber object.

Definition at line 23 of file SerialNumber.cpp.

◆ ~SerialNumber()

Isis::SerialNumber::~SerialNumber ( )
virtual

Destroy a SerialNumber object.

Definition at line 28 of file SerialNumber.cpp.

Member Function Documentation

◆ Compose() [1/3]

QString Isis::SerialNumber::Compose ( const QString &  filename,
bool  def2filename = false 
)
static

Compose a SerialNumber from a file.

Parameters
filenamea filename to open
def2filenameIf a serial number could not be found, try to return the filename
Returns
Calculated SerialNumber or FileName

Definition at line 86 of file SerialNumber.cpp.

References Compose().

◆ Compose() [2/3]

QString Isis::SerialNumber::Compose ( Cube cube,
bool  def2filename = false 
)
static

Compose a SerialNumber from a Cube.

Parameters
cubeAn opened Isis cub
def2filenameIf a serial number could not be found, try to return the filename
Returns
Calculated SerialNumber or FileName

Definition at line 73 of file SerialNumber.cpp.

References Compose(), and Isis::Cube::label().

◆ Compose() [3/3]

◆ ComposeObservation()

QString Isis::SerialNumber::ComposeObservation ( const QString &  sn,
SerialNumberList list,
bool  def2filename = false 
)
static

Creates the ObservationNumber from a string representing the SerialNumber and a SerialList.

Parameters
snthe string representing the SerialNumber
listthe SerialNumberList
def2filenameIf a serial number could not be found, try to return the filename
Returns
Calculated SerialNumber or FileName

Definition at line 185 of file SerialNumber.cpp.

References Isis::ObservationNumber::Compose(), and Isis::SerialNumberList::fileName().

◆ CreateSerialNumber()

QString Isis::SerialNumber::CreateSerialNumber ( PvlGroup snGroup,
int  keys 
)
staticprotected

Create the SerialNumber string by concatenating the keywords in the label with '/' in between serialNumber groups and the number of observationKeys.

Parameters
snGroupA PvlGroup containing the keywords to concatenate
keysthe number of strings to contatenate

Definition at line 164 of file SerialNumber.cpp.

Referenced by Isis::ObservationNumber::Compose(), and Compose().

◆ FindSerialTranslation()

PvlGroup Isis::SerialNumber::FindSerialTranslation ( Pvl label)
staticprivate

Get Groups by translating from correct Translation table.

Parameters
labelA pvl formatted label to be used to generate the serial number

Definition at line 97 of file SerialNumber.cpp.

References Isis::PvlToPvlTranslationManager::Auto(), Isis::FileName::expanded(), Isis::PvlObject::findGroup(), Isis::PvlObject::findObject(), Isis::PvlContainer::keywords(), Isis::toString(), and Isis::PvlToPvlTranslationManager::Translate().

Referenced by Compose().


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