Antares Simulator
Power System Simulator
Loading...
Searching...
No Matches
day.h
1/*
2** Copyright 2007-2024, RTE (https://www.rte-france.com)
3** See AUTHORS.txt
4** SPDX-License-Identifier: MPL-2.0
5** This file is part of Antares-Simulator,
6** Adequacy and Performance assessment for interconnected energy networks.
7**
8** Antares_Simulator is free software: you can redistribute it and/or modify
9** it under the terms of the Mozilla Public Licence 2.0 as published by
10** the Mozilla Foundation, either version 2 of the License, or
11** (at your option) any later version.
12**
13** Antares_Simulator is distributed in the hope that it will be useful,
14** but WITHOUT ANY WARRANTY; without even the implied warranty of
15** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16** Mozilla Public Licence 2.0 for more details.
17**
18** You should have received a copy of the Mozilla Public Licence 2.0
19** along with Antares_Simulator. If not, see <https://opensource.org/license/mpl-2-0/>.
20*/
21#ifndef __ANTARES_TOOLBOX_COMPONENTS_DATAGRID_FILTER_ALL_DAY_H__
22#define __ANTARES_TOOLBOX_COMPONENTS_DATAGRID_FILTER_ALL_DAY_H__
23
24#include "../filter.h"
25#include <antares/date/date.h>
26
27namespace Antares
28{
29namespace Toolbox
30{
31namespace Filter
32{
33class Day : public AFilterBase
34{
35public:
36 static const wxChar* Name()
37 {
38 return wxT("day");
39 }
40 static const wxChar* Caption()
41 {
42 return wxT("Day of the month");
43 }
44 static Date::Precision Precision()
45 {
46 return Date::daily;
47 }
48
49public:
50 Day(Input* parent) : AFilterBase(parent)
51 {
52 operators.addStdArithmetic();
53 }
54
55 virtual ~Day()
56 {
57 }
58
59 virtual Date::Precision precision() const
60 {
61 return Day::Precision();
62 }
63
64 virtual bool checkOnRowsLabels() const
65 {
66 return true;
67 }
68
69 virtual const wxChar* name() const
70 {
71 return Day::Name();
72 }
73 virtual const wxChar* caption() const
74 {
75 return Day::Caption();
76 }
77
78 virtual bool rowIsValid(int row) const
79 {
80 // TODO Do not use global study
81 auto studyptr = GetCurrentStudy();
82 if (!studyptr)
83 return false;
84 auto& study = *studyptr;
85 auto& calendar = study.calendar;
86
87 switch (pDataGridPrecision)
88 {
89 case Date::hourly:
90 {
91 if (row < study.calendar.maxHoursInYear)
92 {
93 uint daymonth = calendar.hours[row].dayMonth + 1;
94 return currentOperator->compute((int)daymonth);
95 }
96 break;
97 }
98 case Date::daily:
99 {
100 if (row < study.calendar.maxDaysInYear)
101 {
102 uint daymonth = calendar.days[row].dayMonth + 1;
103 return currentOperator->compute((int)daymonth);
104 }
105 break;
106 }
107 default:
108 break;
109 }
110 return false;
111 }
112
113}; // class HourYear
114
115} // namespace Filter
116} // namespace Toolbox
117} // namespace Antares
118
119#endif // __ANTARES_TOOLBOX_COMPONENTS_DATAGRID_FILTER_ALL_DAY_H__
Abstract Filter.
Definition filter.h:52
Operator::AOperator * currentOperator
The current selected operator for the filter.
Definition filter.h:195
Date::Precision pDataGridPrecision
Precision.
Definition filter.h:199
Operator::List operators
List of all possible operations for the filter.
Definition filter.h:193
AFilterBase(Input *parent)
Default constructor.
Definition filter.cpp:38
virtual const wxChar * caption() const
Get the caption of the filter.
Definition day.h:73
virtual const wxChar * name() const
Get the name of the filter.
Definition day.h:69
Definition input.h:38