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

2005-08-02 Jeff Anderson added new static methods for serial number composition from a cube or filename

2006-01-24 Jacob Danton Updated the SerialNumber Compose method to use .trn files specific to the mission

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.

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.

2007-07-09 Steven Lambright Changed missions translation filename from Missions.trn to MissionName2DataDir.trn

2007-09-11 Steven Koechle Added three ComposeObservation methods and made code reusable by seperating existing code into two private methods.

2007-09-13 Steven Koechle Fixed boolean paramaters passed into FindSerialTranslation

2008-05-09 Steven Lambright Optimized the FindSerialTranslation method

2008-05-18 Steven Lambright Fixed documentation

History:
2008-01-10 Christpher Austin Removed the use of the system default file in FindSerialTranslation() and detached ObservationNumber functionality into its own class

Definition at line 85 of file SerialNumber.h.

Constructor & Destructor Documentation

◆ SerialNumber()

Isis::SerialNumber::SerialNumber ( )

Create an empty SerialNumber object.

Definition at line 17 of file SerialNumber.cpp.

◆ ~SerialNumber()

Isis::SerialNumber::~SerialNumber ( )
virtual

Destroy a SerialNumber object.

Definition at line 22 of file SerialNumber.cpp.

Member Function Documentation

◆ Compose() [1/3]

◆ 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 67 of file SerialNumber.cpp.

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

◆ Compose() [3/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 80 of file SerialNumber.cpp.

References Compose().

◆ 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 174 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 153 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 91 of file SerialNumber.cpp.

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

Referenced by Compose().


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