-
Notifications
You must be signed in to change notification settings - Fork 1
/
vehicle.cpp
106 lines (92 loc) · 2.53 KB
/
vehicle.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/*include custom headers*/
#include "vehicle.h"
#include "string_helper.h"
const char DELIMITER = ';';
Vehicle :: Vehicle(string registrationNumber,VehicleType type,int seats,
string companyName,double pricePerKm, string PUCExpirationDate , long recordId)
: Storable(recordId)
{
this->registrationNumber = registrationNumber;
this->type = type;
this->seats = seats;
this->pricePerKm = pricePerKm;
this->companyName = companyName;
this->PUCExpirationDate = PUCExpirationDate;
}
string Vehicle :: getRegistrationNumber() const
{
return this->registrationNumber;
}
VehicleType Vehicle :: getVehicleType() const
{
return this->type;
}
int Vehicle :: getSeats() const
{
return this->seats;
}
string Vehicle :: getCompanyName() const
{
return this->companyName;
}
Date Vehicle :: getPUCExpirationDate() const
{
return this->PUCExpirationDate;
}
double Vehicle :: getPricePerKm() const
{
return this->pricePerKm;
}
void Vehicle :: setPricePerKm(double newPrice)
{
this->pricePerKm = newPrice;
}
string Vehicle :: getVehicleTypeName() const
{
switch(this->type)
{
case VehicleType ::bike:
return "Bike";
case VehicleType ::car:
return "Car";
case VehicleType ::towera:
return "Towera";
default :
return "";
}
}
string Vehicle :: toString() const
{
stringstream ss;
ss << recordId << DELIMITER
<< registrationNumber << DELIMITER
<<type << DELIMITER
<< seats << DELIMITER
<<companyName << DELIMITER
<<to_string(pricePerKm) << DELIMITER
<< PUCExpirationDate;
return ss.str();
}
void Vehicle :: display() const
{
cout << "Vehicle Details : " << endl;
cout << "Registration Number : " << this->registrationNumber << endl;
cout << "Vehicle Type : " << this->getVehicleTypeName() << endl;
cout << "No of Seats : " << this->seats << endl;
cout << "Company Name : " << this->companyName << endl;
cout << "Price Per Km : " << this->pricePerKm << "Rs/Km" << endl;
cout << "PUC Expiration Date : " << this->PUCExpirationDate << endl;
}
void Vehicle :: setDataFrom(Storable *s)
{
Vehicle *v = dynamic_cast<Vehicle*> (s);
if(v)
{
this->registrationNumber = v->registrationNumber;
this->type= v->type;
this->seats = v->seats;
this->companyName = v->companyName;
this->pricePerKm = v->pricePerKm;
this->PUCExpirationDate = v->PUCExpirationDate;
}
}