swift
matchingstatisticsentry.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2017 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_MISC_SIMULATION_MATCHINGSTATISTICSENTRY_H
7 #define SWIFT_MISC_SIMULATION_MATCHINGSTATISTICSENTRY_H
8 
9 #include "misc/swiftmiscexport.h"
10 #include "misc/timestampbased.h"
11 #include "misc/valueobject.h"
12 
13 SWIFT_DECLARE_VALUEOBJECT_MIXINS(swift::misc::Simulation, CMatchingStatisticsEntry)
14 
15 namespace swift::misc::simulation
16 {
19  public swift::misc::CValueObject<CMatchingStatisticsEntry>,
21  {
22  public:
25  {
26  IndexSessionId = CPropertyIndexRef::GlobalIndexCMatchingStatisticsEntry,
27  IndexModelSetId,
28  IndexEntryType,
29  IndexEntryTypeAsString,
30  IndexEntryTypeAsIcon,
31  IndexCount,
32  IndexDescription,
33  IndexAircraftDesignator,
34  IndexAirlineDesignator,
35  IndexHasAircraftAirlineCombination
36  };
37 
39  enum EntryType
40  {
41  Found,
42  Missing
43  };
44 
47 
49  CMatchingStatisticsEntry(EntryType type, const QString &sessionId, const QString &modelSetId,
50  const QString &description, const QString &aircraftDesignator,
51  const QString &airlineDesignator = {});
52 
54  const QString &getSessionId() const { return m_sessionId; }
55 
57  void setSessionId(const QString &sessionId) { m_sessionId = sessionId.trimmed(); }
58 
60  const QString &getModelSetId() const { return m_modelSetId; }
61 
63  void setModelSetId(const QString &modelSetId) { m_modelSetId = modelSetId.trimmed(); }
64 
66  const QString &getAircraftDesignator() const { return m_aircraftDesignator; }
67 
69  void setAircraftDesignator(const QString &designator) { m_aircraftDesignator = designator.trimmed().toUpper(); }
70 
72  const QString &getAirlineDesignator() const { return m_airlineDesignator; }
73 
75  void setAirlineDesignator(const QString &designator) { m_airlineDesignator = designator.trimmed().toUpper(); }
76 
78  EntryType getEntryType() const;
79 
81  bool isMissing() const;
82 
84  void setEntryType(EntryType type);
85 
87  const QString &getDescription() const { return m_description; }
88 
90  void setDescription(const QString &description) { m_description = description; }
91 
93  int getCount() const;
94 
96  void increaseCount();
97 
99  bool matches(EntryType type, const QString &sessionId, const QString &aircraftDesignator,
100  const QString &airlineDesignator) const;
101 
103  QVariant propertyByIndex(swift::misc::CPropertyIndexRef index) const;
104 
106  void setPropertyByIndex(swift::misc::CPropertyIndexRef index, const QVariant &variant);
107 
109  int comparePropertyByIndex(CPropertyIndexRef index, const CMatchingStatisticsEntry &compareValue) const;
110 
112  QString convertToQString(bool i18n = false) const;
113 
115  bool hasAircraftAirlineCombination() const;
116 
118  static const QString &entryTypeToString(EntryType type);
119 
121  static const swift::misc::CIcon &entryTypeToIcon(EntryType type);
122 
123  private:
124  QString m_sessionId;
125  QString m_modelSetId;
126  QString m_description;
127  QString m_aircraftDesignator;
128  QString m_airlineDesignator;
129  int m_entryType = Missing;
130  int m_count = 1;
131 
134  SWIFT_METAMEMBER(sessionId),
135  SWIFT_METAMEMBER(modelSetId),
136  SWIFT_METAMEMBER(aircraftDesignator),
137  SWIFT_METAMEMBER(airlineDesignator),
138  SWIFT_METAMEMBER(description),
139  SWIFT_METAMEMBER(entryType),
140  SWIFT_METAMEMBER(count));
141  };
142 } // namespace swift::misc::simulation
143 
146 
147 #endif // SWIFT_MISC_SIMULATION_MATCHINGSTATISTICSENTRY_H
Value object for icons. An icon is stored in the global icon repository and identified by its index....
Definition: icon.h:39
Non-owning reference to a CPropertyIndex with a subset of its features.
Mix of the most commonly used mixin classes.
Definition: valueobject.h:114
Entity with timestamp.
ColumnIndex
Base class enums.
Definition: mixinindex.h:44
Value object for a matching statistics entry.
void setSessionId(const QString &sessionId)
Set session id.
const QString & getModelSetId() const
Get model set id.
void setAirlineDesignator(const QString &designator)
Set missing airline designator.
const QString & getDescription() const
Get description.
void setAircraftDesignator(const QString &designator)
Set missing aircraft designator.
const QString & getSessionId() const
Session id.
void setDescription(const QString &description)
Set a description.
const QString & getAirlineDesignator() const
Get missing airline designator.
EntryType
Represents type of entry.
const QString & getAircraftDesignator() const
Get missing aircraft designator.
void setModelSetId(const QString &modelSetId)
Set model set id.
#define SWIFT_METAMEMBER(MEMBER,...)
Macro to define an element within a metaclass.
Definition: metaclass.h:73
#define SWIFT_METACLASS(CLASS,...)
Macro to define a nested metaclass that describes the attributes of its enclosing class.
Definition: metaclass.h:53
#define SWIFT_MISC_EXPORT
Export a class or function from the library.
#define SWIFT_DECLARE_VALUEOBJECT_MIXINS(Namespace, Class)
Explicit template declaration of mixins for a CValueObject subclass to be placed near the top of the ...
Definition: valueobject.h:65