OpenMS  2.4.0
Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | Private Member Functions | Private Attributes | Friends | List of all members
DataValue Class Reference

Class to hold strings, numeric values, lists of strings and lists of numeric values. More...

#include <OpenMS/DATASTRUCTURES/DataValue.h>

Public Types

enum  DataType {
  STRING_VALUE, INT_VALUE, DOUBLE_VALUE, STRING_LIST,
  INT_LIST, DOUBLE_LIST, EMPTY_VALUE
}
 Supported types for DataValue. More...
 

Public Member Functions

DataType valueType () const
 returns the type of value stored More...
 
DataValueoperator= (const DataValue &)
 assignment operator More...
 
bool isEmpty () const
 Test if the value is empty. More...
 
Constructors and destructors
 DataValue ()
 default constructor More...
 
 DataValue (const char *)
 specific constructor for char* (converted to string) More...
 
 DataValue (const std::string &)
 specific constructor for std::string values More...
 
 DataValue (const String &)
 specific constructor for string values More...
 
 DataValue (const QString &)
 specific constructor for QString values More...
 
 DataValue (const StringList &)
 specific constructor for string lists More...
 
 DataValue (const IntList &)
 specific constructor for integer lists More...
 
 DataValue (const DoubleList &)
 specific constructor for double lists More...
 
 DataValue (long double)
 specific constructor for long double values (note: the implementation uses double) More...
 
 DataValue (double)
 specific constructor for double values (note: the implementation uses double) More...
 
 DataValue (float)
 specific constructor for float values (note: the implementation uses double) More...
 
 DataValue (short int)
 specific constructor for short int values (note: the implementation uses SignedSize) More...
 
 DataValue (unsigned short int)
 specific constructor for unsigned short int values (note: the implementation uses SignedSize) More...
 
 DataValue (int)
 specific constructor for int values (note: the implementation uses SignedSize) More...
 
 DataValue (unsigned)
 specific constructor for unsigned int values (note: the implementation uses SignedSize) More...
 
 DataValue (long int)
 specific constructor for long int values (note: the implementation uses SignedSize) More...
 
 DataValue (unsigned long)
 specific constructor for unsigned long int values (note: the implementation uses SignedSize) More...
 
 DataValue (long long)
 specific constructor for long long int values (note: the implementation uses SignedSize) More...
 
 DataValue (unsigned long long)
 specific constructor for unsigned long long int values (note: the implementation uses SignedSize) More...
 
 DataValue (const DataValue &)
 copy constructor More...
 
virtual ~DataValue ()
 destructor More...
 
Cast operators

These methods are used when the DataType is known. If they are applied to a DataValue with the wrong DataType, an exception (Exception::ConversionError) is thrown. In particular, none of these operators will work for an empty DataValue (DataType EMPTY_VALUE) - except toChar(), which will return 0.

 operator std::string () const
 conversion operator to string More...
 
 operator StringList () const
 conversion operator to string list More...
 
 operator IntList () const
 conversion operator to integer list More...
 
 operator DoubleList () const
 conversion operator to double list More...
 
 operator long double () const
 conversion operator to long double More...
 
 operator double () const
 conversion operator to double More...
 
 operator float () const
 conversion operator to float More...
 
 operator short int () const
 conversion operator to short int More...
 
 operator unsigned short int () const
 conversion operator to unsigned short int More...
 
 operator int () const
 conversion operator to int More...
 
 operator unsigned int () const
 conversion operator to unsigned int More...
 
 operator long int () const
 conversion operator to long int More...
 
 operator unsigned long int () const
 conversion operator to unsigned long int More...
 
 operator long long () const
 conversion operator to long long More...
 
 operator unsigned long long () const
 conversion operator to unsigned long long More...
 
const char * toChar () const
 Convert DataValues to char*. More...
 
StringList toStringList () const
 Explicitly convert DataValue to StringList. More...
 
IntList toIntList () const
 Explicitly convert DataValue to IntList. More...
 
DoubleList toDoubleList () const
 Explicitly convert DataValue to DoubleList. More...
 
assignment/conversion operators

These methods are used to assign supported types to DataType.

DataValueoperator= (const char *)
 specific assignment for char* (converted to string) More...
 
DataValueoperator= (const std::string &)
 specific assignment for std::string values More...
 
DataValueoperator= (const String &)
 specific assignment for string values More...
 
DataValueoperator= (const QString &)
 specific assignment for QString values More...
 
DataValueoperator= (const StringList &)
 specific assignment for string lists More...
 
DataValueoperator= (const IntList &)
 specific assignment for integer lists More...
 
DataValueoperator= (const DoubleList &)
 specific assignment for double lists More...
 
DataValueoperator= (const long double)
 specific assignment for long double values (note: the implementation uses double) More...
 
DataValueoperator= (const double)
 specific assignment for double values (note: the implementation uses double) More...
 
DataValueoperator= (const float)
 specific assignment for float values (note: the implementation uses double) More...
 
DataValueoperator= (const short int)
 specific assignment for short int values (note: the implementation uses SignedSize) More...
 
DataValueoperator= (const unsigned short int)
 specific assignment for unsigned short int values (note: the implementation uses SignedSize) More...
 
DataValueoperator= (const int)
 specific assignment for int values (note: the implementation uses SignedSize) More...
 
DataValueoperator= (const unsigned)
 specific assignment for unsigned int values (note: the implementation uses SignedSize) More...
 
DataValueoperator= (const long int)
 specific assignment for long int values (note: the implementation uses SignedSize) More...
 
DataValueoperator= (const unsigned long)
 specific assignment for unsigned long int values (note: the implementation uses SignedSize) More...
 
DataValueoperator= (const long long)
 specific assignment for long long int values (note: the implementation uses SignedSize) More...
 
DataValueoperator= (const unsigned long long)
 specific assignment for unsigned long long int values (note: the implementation uses SignedSize) More...
 
conversion operators

These methods can be used independent of the DataType. If you already know the DataType, you should use a cast operator!
For conversion of string DataValues to numeric types, first use toString() and then the conversion methods of String.

String toString () const
 Conversion to String. More...
 
QString toQString () const
 Conversion to QString. More...
 
bool toBool () const
 Conversion to bool. More...
 
Methods to handle units

These methods are used when the DataValue has an associated unit.

bool hasUnit () const
 Check if the value has a unit. More...
 
const StringgetUnit () const
 Return the unit associated to this DataValue. More...
 
void setUnit (const String &unit)
 Sets the unit to the given String. More...
 

Static Public Attributes

static const DataValue EMPTY
 Empty data value for comparisons. More...
 

Protected Attributes

DataType value_type_
 Type of the currently stored value. More...
 
union {
   SignedSize   ssize_
 
   double   dou_
 
   String *   str_
 
   StringList *   str_list_
 
   IntList *   int_list_
 
   DoubleList *   dou_list_
 
data_
 Space to store the data. More...
 

Private Member Functions

void clear_ ()
 Clears the current state of the DataValue and release every used memory. More...
 

Private Attributes

String unit_
 The unit of the data value (if it has one), otherwise empty string. More...
 

Friends

std::ostream & operator<< (std::ostream &, const DataValue &)
 output stream operator More...
 
bool operator== (const DataValue &, const DataValue &)
 Equality comparator. More...
 
bool operator< (const DataValue &, const DataValue &)
 Smaller than comparator (for lists we use the size) More...
 
bool operator> (const DataValue &, const DataValue &)
 Greater than comparator (for lists we use the size) More...
 
bool operator!= (const DataValue &, const DataValue &)
 Equality comparator. More...
 

Detailed Description

Class to hold strings, numeric values, lists of strings and lists of numeric values.

Member Enumeration Documentation

◆ DataType

enum DataType

Supported types for DataValue.

Enumerator
STRING_VALUE 

string value

INT_VALUE 

integer value

DOUBLE_VALUE 

double value

STRING_LIST 

string list

INT_LIST 

integer list

DOUBLE_LIST 

double list

EMPTY_VALUE 

empty value

Constructor & Destructor Documentation

◆ DataValue() [1/20]

DataValue ( )

default constructor

◆ DataValue() [2/20]

DataValue ( const char *  )

specific constructor for char* (converted to string)

◆ DataValue() [3/20]

DataValue ( const std::string &  )

specific constructor for std::string values

◆ DataValue() [4/20]

DataValue ( const String )

specific constructor for string values

◆ DataValue() [5/20]

DataValue ( const QString &  )

specific constructor for QString values

◆ DataValue() [6/20]

DataValue ( const StringList )

specific constructor for string lists

◆ DataValue() [7/20]

DataValue ( const IntList )

specific constructor for integer lists

◆ DataValue() [8/20]

DataValue ( const DoubleList )

specific constructor for double lists

◆ DataValue() [9/20]

DataValue ( long  double)

specific constructor for long double values (note: the implementation uses double)

◆ DataValue() [10/20]

specific constructor for double values (note: the implementation uses double)

◆ DataValue() [11/20]

specific constructor for float values (note: the implementation uses double)

◆ DataValue() [12/20]

DataValue ( short  int)

specific constructor for short int values (note: the implementation uses SignedSize)

◆ DataValue() [13/20]

DataValue ( unsigned short  int)

specific constructor for unsigned short int values (note: the implementation uses SignedSize)

◆ DataValue() [14/20]

DataValue ( int  )

specific constructor for int values (note: the implementation uses SignedSize)

◆ DataValue() [15/20]

DataValue ( unsigned  )

specific constructor for unsigned int values (note: the implementation uses SignedSize)

◆ DataValue() [16/20]

DataValue ( long  int)

specific constructor for long int values (note: the implementation uses SignedSize)

◆ DataValue() [17/20]

DataValue ( unsigned  long)

specific constructor for unsigned long int values (note: the implementation uses SignedSize)

◆ DataValue() [18/20]

DataValue ( long  long)

specific constructor for long long int values (note: the implementation uses SignedSize)

◆ DataValue() [19/20]

DataValue ( unsigned long  long)

specific constructor for unsigned long long int values (note: the implementation uses SignedSize)

◆ DataValue() [20/20]

DataValue ( const DataValue )

copy constructor

◆ ~DataValue()

virtual ~DataValue ( )
virtual

destructor

Member Function Documentation

◆ clear_()

void clear_ ( )
private

Clears the current state of the DataValue and release every used memory.

◆ getUnit()

const String& getUnit ( ) const

Return the unit associated to this DataValue.

◆ hasUnit()

bool hasUnit ( ) const
inline

Check if the value has a unit.

◆ isEmpty()

bool isEmpty ( ) const
inline

Test if the value is empty.

Note
A DataValue containing an empty string ("") does not count as empty!

Referenced by IDFilter::HasMetaValue< HitType >::operator()(), and IDFilter::HasMaxMetaValue< HitType >::operator()().

◆ operator double()

operator double ( ) const

conversion operator to double

Note: The implementation uses typedef double (as opposed to float, double, long double.)

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ operator DoubleList()

operator DoubleList ( ) const

conversion operator to double list

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ operator float()

operator float ( ) const

conversion operator to float

Note: The implementation uses typedef double (as opposed to float, double, long double.)

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ operator int()

operator int ( ) const

conversion operator to int

Note: The implementation uses typedef SignedSize.

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ operator IntList()

operator IntList ( ) const

conversion operator to integer list

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ operator long double()

operator long double ( ) const

conversion operator to long double

Note: The implementation uses typedef double (as opposed to float, double, long double.)

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ operator long int()

operator long int ( ) const

conversion operator to long int

Note: The implementation uses typedef SignedSize.

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ operator long long()

operator long long ( ) const

conversion operator to long long

Note: The implementation uses typedef SignedSize.

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ operator short int()

operator short int ( ) const

conversion operator to short int

Note: The implementation uses typedef SignedSize.

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ operator std::string()

operator std::string ( ) const

conversion operator to string

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ operator StringList()

operator StringList ( ) const

conversion operator to string list

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ operator unsigned int()

operator unsigned int ( ) const

conversion operator to unsigned int

Note: The implementation uses typedef SignedSize.

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ operator unsigned long int()

operator unsigned long int ( ) const

conversion operator to unsigned long int

Note: The implementation uses typedef SignedSize.

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ operator unsigned long long()

operator unsigned long long ( ) const

conversion operator to unsigned long long

Note: The implementation uses typedef SignedSize.

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ operator unsigned short int()

operator unsigned short int ( ) const

conversion operator to unsigned short int

Note: The implementation uses typedef SignedSize.

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ operator=() [1/19]

DataValue& operator= ( const char *  )

specific assignment for char* (converted to string)

◆ operator=() [2/19]

DataValue& operator= ( const std::string &  )

specific assignment for std::string values

◆ operator=() [3/19]

DataValue& operator= ( const String )

specific assignment for string values

◆ operator=() [4/19]

DataValue& operator= ( const QString &  )

specific assignment for QString values

◆ operator=() [5/19]

DataValue& operator= ( const StringList )

specific assignment for string lists

◆ operator=() [6/19]

DataValue& operator= ( const IntList )

specific assignment for integer lists

◆ operator=() [7/19]

DataValue& operator= ( const DoubleList )

specific assignment for double lists

◆ operator=() [8/19]

DataValue& operator= ( const long  double)

specific assignment for long double values (note: the implementation uses double)

◆ operator=() [9/19]

DataValue& operator= ( const double  )

specific assignment for double values (note: the implementation uses double)

◆ operator=() [10/19]

DataValue& operator= ( const float  )

specific assignment for float values (note: the implementation uses double)

◆ operator=() [11/19]

DataValue& operator= ( const short  int)

specific assignment for short int values (note: the implementation uses SignedSize)

◆ operator=() [12/19]

DataValue& operator= ( const unsigned short  int)

specific assignment for unsigned short int values (note: the implementation uses SignedSize)

◆ operator=() [13/19]

DataValue& operator= ( const int  )

specific assignment for int values (note: the implementation uses SignedSize)

◆ operator=() [14/19]

DataValue& operator= ( const unsigned  )

specific assignment for unsigned int values (note: the implementation uses SignedSize)

◆ operator=() [15/19]

DataValue& operator= ( const long  int)

specific assignment for long int values (note: the implementation uses SignedSize)

◆ operator=() [16/19]

DataValue& operator= ( const unsigned  long)

specific assignment for unsigned long int values (note: the implementation uses SignedSize)

◆ operator=() [17/19]

DataValue& operator= ( const long  long)

specific assignment for long long int values (note: the implementation uses SignedSize)

◆ operator=() [18/19]

DataValue& operator= ( const unsigned long  long)

specific assignment for unsigned long long int values (note: the implementation uses SignedSize)

◆ operator=() [19/19]

DataValue& operator= ( const DataValue )

assignment operator

◆ setUnit()

void setUnit ( const String unit)

Sets the unit to the given String.

◆ toBool()

bool toBool ( ) const

Conversion to bool.

Converts the strings 'true' and 'false' to a bool.

Exceptions
Exception::ConversionErroris thrown for non-string parameters and string parameters with values other than 'true' and 'false'.

Referenced by TOPPViewBase::preferencesDialog(), TOPPViewBase::showSpectrumGenerationDialog(), and SignalToNoiseEstimatorMedian< ContainerT >::updateMembers_().

◆ toChar()

const char* toChar ( ) const

Convert DataValues to char*.

If the DataValue contains a string, a pointer to it's char* is returned. If the DataValue is empty, NULL is returned.

◆ toDoubleList()

DoubleList toDoubleList ( ) const

Explicitly convert DataValue to DoubleList.

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ toIntList()

IntList toIntList ( ) const

Explicitly convert DataValue to IntList.

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ toQString()

QString toQString ( ) const

Conversion to QString.

Referenced by TOPPViewBase::preferencesDialog(), and TOPPViewBase::updateLayerBar().

◆ toString()

String toString ( ) const

◆ toStringList()

StringList toStringList ( ) const

Explicitly convert DataValue to StringList.

Exceptions
Exception::ConversionErroris thrown if a cast from the the wrong type is requested

◆ valueType()

DataType valueType ( ) const
inline

returns the type of value stored

Referenced by DataFilters::metaPasses_().

Friends And Related Function Documentation

◆ operator!=

bool operator!= ( const DataValue ,
const DataValue  
)
friend

Equality comparator.

◆ operator<

bool operator< ( const DataValue ,
const DataValue  
)
friend

Smaller than comparator (for lists we use the size)

◆ operator<<

std::ostream& operator<< ( std::ostream &  ,
const DataValue  
)
friend

output stream operator

◆ operator==

bool operator== ( const DataValue ,
const DataValue  
)
friend

Equality comparator.

◆ operator>

bool operator> ( const DataValue ,
const DataValue  
)
friend

Greater than comparator (for lists we use the size)

Member Data Documentation

◆ data_

union { ... } data_

Space to store the data.

◆ dou_

double dou_

◆ dou_list_

DoubleList* dou_list_

◆ EMPTY

const DataValue EMPTY
static

Empty data value for comparisons.

◆ int_list_

IntList* int_list_

◆ ssize_

SignedSize ssize_

◆ str_

String* str_

◆ str_list_

StringList* str_list_

◆ unit_

String unit_
private

The unit of the data value (if it has one), otherwise empty string.

◆ value_type_

DataType value_type_
protected

Type of the currently stored value.