OpenMS
UniqueIdInterface Class Reference

A base class defining a common interface for all classes having a unique id. More...

#include <OpenMS/CONCEPT/UniqueIdInterface.h>

Inheritance diagram for UniqueIdInterface:
[legend]
Collaboration diagram for UniqueIdInterface:
[legend]

Public Types

enum  { INVALID = 0 }
 This is the invalid unique id (cast it to a UInt64 if you like) More...
 

Public Member Functions

 UniqueIdInterface ()
 Default constructor - the unique id will be invalid More...
 
 UniqueIdInterface (const UniqueIdInterface &rhs)=default
 Copy constructor - copies the unique id. More...
 
 UniqueIdInterface (UniqueIdInterface &&rhs)=default
 Move constructor. More...
 
UniqueIdInterfaceoperator= (UniqueIdInterface const &rhs)=default
 Assignment operator - copies the unique id. More...
 
UniqueIdInterfaceoperator= (UniqueIdInterface &&) &=default
 Move Assignment operator - copies the unique id. More...
 
virtual ~UniqueIdInterface ()=default
 Destructor. More...
 
bool operator== (UniqueIdInterface const &rhs) const
 Equality comparison operator - the unique ids must be equal (!) More...
 
UInt64 getUniqueId () const
 Non-mutable access to unique id - returns the unique id. More...
 
Size clearUniqueId ()
 Clear the unique id. The new unique id will be invalid. Returns 1 if the unique id was changed, 0 otherwise. More...
 
void swap (UniqueIdInterface &from)
 
Size hasValidUniqueId () const
 Returns whether the unique id is valid. Returns 1 if the unique id is valid, 0 otherwise. More...
 
Size hasInvalidUniqueId () const
 Returns whether the unique id is invalid. Returns 1 if the unique id is invalid, 0 otherwise. More...
 
Size setUniqueId ()
 Assigns a new, valid unique id. Always returns 1. More...
 
Size ensureUniqueId ()
 Assigns a valid unique id, but only if the present one is invalid. Returns 1 if the unique id was changed, 0 otherwise. More...
 
void setUniqueId (UInt64 rhs)
 Assigns the given unique id. More...
 
void setUniqueId (const String &rhs)
 Mutable access to unique id. More...
 

Static Public Member Functions

static bool isValid (UInt64 unique_id)
 Returns true if the unique_id is valid, false otherwise. More...
 

Protected Attributes

UInt64 unique_id_
 the unique id More...
 

Detailed Description

A base class defining a common interface for all classes having a unique id.

Have a look at RichPeak2D for an example how to extend a class to support unique ids.

See also
UniqueIdGenerator, RichPeak2D

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

This is the invalid unique id (cast it to a UInt64 if you like)

It is represented as an enum because static class members lead to bugs and linker errors all the time...

Enumerator
INVALID 

Constructor & Destructor Documentation

◆ UniqueIdInterface() [1/3]

UniqueIdInterface ( )
inline

Default constructor - the unique id will be invalid

◆ UniqueIdInterface() [2/3]

UniqueIdInterface ( const UniqueIdInterface rhs)
default

Copy constructor - copies the unique id.

◆ UniqueIdInterface() [3/3]

UniqueIdInterface ( UniqueIdInterface &&  rhs)
default

Move constructor.

◆ ~UniqueIdInterface()

virtual ~UniqueIdInterface ( )
virtualdefault

Destructor.

Member Function Documentation

◆ clearUniqueId()

Size clearUniqueId ( )
inline

Clear the unique id. The new unique id will be invalid. Returns 1 if the unique id was changed, 0 otherwise.

Referenced by RichPeak2D::operator=(), and RichPeak2D::RichPeak2D().

◆ ensureUniqueId()

Size ensureUniqueId ( )

Assigns a valid unique id, but only if the present one is invalid. Returns 1 if the unique id was changed, 0 otherwise.

Referenced by MRMTransitionGroupPicker::createMRMFeature().

◆ getUniqueId()

UInt64 getUniqueId ( ) const
inline

Non-mutable access to unique id - returns the unique id.

Referenced by FeatureHandle::IndexLess::operator()().

◆ hasInvalidUniqueId()

Size hasInvalidUniqueId ( ) const
inline

Returns whether the unique id is invalid. Returns 1 if the unique id is invalid, 0 otherwise.

◆ hasValidUniqueId()

Size hasValidUniqueId ( ) const
inline

Returns whether the unique id is valid. Returns 1 if the unique id is valid, 0 otherwise.

◆ isValid()

static bool isValid ( UInt64  unique_id)
inlinestatic

Returns true if the unique_id is valid, false otherwise.

Currently, an invalid unique id is represented by UInt64(0), but please prefer using this method for clarity.

Referenced by UniqueIdIndexer< T >::resolveUniqueIdConflicts(), and UniqueIdIndexer< T >::updateUniqueIdToIndex().

◆ operator=() [1/2]

UniqueIdInterface& operator= ( UniqueIdInterface &&  ) &
default

Move Assignment operator - copies the unique id.

◆ operator=() [2/2]

UniqueIdInterface& operator= ( UniqueIdInterface const &  rhs)
default

Assignment operator - copies the unique id.

◆ operator==()

bool operator== ( UniqueIdInterface const &  rhs) const
inline

Equality comparison operator - the unique ids must be equal (!)

References UniqueIdInterface::unique_id_.

Referenced by RichPeak2D::operator==().

◆ setUniqueId() [1/3]

Size setUniqueId ( )

Assigns a new, valid unique id. Always returns 1.

◆ setUniqueId() [2/3]

void setUniqueId ( const String rhs)

Mutable access to unique id.

This is designed to work well with id attributes in XML, which are prefixed with letters. The portion of the String after the last underscore is extracted and parsed as a UInt64. It must consist of digits only. For example, some_feature.setUniqueId("f_12345_00067890") is equivalent to some_feature.setUniqueId(67890)

◆ setUniqueId() [3/3]

void setUniqueId ( UInt64  rhs)
inline

Assigns the given unique id.

◆ swap()

void swap ( UniqueIdInterface from)
inline

Member Data Documentation

◆ unique_id_

UInt64 unique_id_
protected