Design Patterns
composite_equipment.h
Go to the documentation of this file.
1 // Based on "Design Patterns: Elements of Reusable Object-Oriented Software"
2 // book by Erich Gamma, John Vlissides, Ralph Johnson, and Richard Helm
3 //
4 // Created by Bartosz Rachwal. The National Institute of Advanced Industrial Science and Technology, Japan.
5 
6 #ifndef STRUCTURAL_COMPOSITE_COMPOSITE_EQUIPMENT_H_
7 #define STRUCTURAL_COMPOSITE_COMPOSITE_EQUIPMENT_H_
8 
9 #include "equipment_interface.h"
10 
11 #include <string>
12 
13 #include "../../../operational/src/iterator/list.h"
14 
15 namespace structural
16 {
17 namespace composite
18 {
20 {
21  public:
22  virtual std::string name() const override;
23 
24  virtual Currency price() const override;
25  virtual void price(const Currency&) override;
26 
27  virtual Watt power() const override;
28  virtual void power(const Watt&) override;
29 
30  Currency NetPrice() override;
31  Currency DiscountPrice() override;
32 
33  virtual void Add(EquipmentInterface*);
34  virtual void Remove(EquipmentInterface*);
35 
37 
38  protected:
40  explicit CompositeEquipment(const std::string& name);
42 
43  private:
44  std::string name_;
45  Currency price_;
46  Watt power_;
47 
49 };
50 }
51 }
52 
53 #endif
54 
virtual void Remove(EquipmentInterface *)
Definition: composite_equipment.cc:77
virtual Watt power() const override
Definition: composite_equipment.cc:39
virtual Currency price() const override
Definition: composite_equipment.cc:29
Definition: shape_interface.h:11
Definition: currency.h:13
Currency NetPrice() override
Definition: composite_equipment.cc:49
Definition: list.h:17
virtual operational::iterator::IteratorInterface< EquipmentInterface * > * CreateIterator()
Definition: composite_equipment.cc:82
Definition: composite_equipment.h:19
Definition: iterator_interface.h:14
CompositeEquipment()
Definition: composite_equipment.cc:17
~CompositeEquipment()
Definition: composite_equipment.cc:19
Currency DiscountPrice() override
Definition: composite_equipment.cc:65
virtual void Add(EquipmentInterface *)
Definition: composite_equipment.cc:72
virtual std::string name() const override
Definition: composite_equipment.cc:24
Definition: equipment_interface.h:18
Definition: watt.h:13