OpenMS
Loading...
Searching...
No Matches
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
 
 UniqueIdInterface (const UniqueIdInterface &rhs)=default
 Copy constructor - copies the unique id.
 
 UniqueIdInterface (UniqueIdInterface &&rhs)=default
 Move constructor.
 
UniqueIdInterfaceoperator= (UniqueIdInterface const &rhs)=default
 Assignment operator - copies the unique id.
 
UniqueIdInterfaceoperator= (UniqueIdInterface &&) &=default
 Move Assignment operator - copies the unique id.
 
virtual ~UniqueIdInterface ()=default
 Destructor.
 
bool operator== (UniqueIdInterface const &rhs) const
 Equality comparison operator - the unique ids must be equal (!)
 
UInt64 getUniqueId () const
 Non-mutable access to unique id - returns the unique id.
 
Size clearUniqueId ()
 Clear the unique id. The new unique id will be invalid. Returns 1 if the unique id was changed, 0 otherwise.
 
void swap (UniqueIdInterface &from)
 
Size hasValidUniqueId () const
 Returns whether the unique id is valid. Returns 1 if the unique id is valid, 0 otherwise.
 
Size hasInvalidUniqueId () const
 Returns whether the unique id is invalid. Returns 1 if the unique id is invalid, 0 otherwise.
 
Size setUniqueId ()
 Assigns a new, valid unique id. Always returns 1.
 
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.
 
void setUniqueId (UInt64 rhs)
 Assigns the given unique id.
 
void setUniqueId (const std::string &rhs)
 Mutable access to unique id.
 

Static Public Member Functions

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

Protected Attributes

UInt64 unique_id_
 the unique id
 

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.

◆ 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_.

◆ setUniqueId() [1/3]

Size setUniqueId ( )

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

◆ setUniqueId() [2/3]

void setUniqueId ( const std::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 std::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