forked from ivogeorg/ucd-csci2312-pa4
/
Exceptions.cpp
75 lines (53 loc) · 2.13 KB
/
Exceptions.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
//
// Created by ryanm on 4/12/2016.
//
#include <string>
#include "Exceptions.h"
namespace Gaming {
Gaming::DimensionEx::DimensionEx(unsigned expWidth, unsigned expHeight, unsigned width, unsigned height) {
__exp_height = expHeight;
__exp_width = expWidth;
__width = width;
__height = height;
setName("DimensionsEx");
}
std::ostream &operator<<(std::ostream &os, const Gaming::GamingException &ex) {
os << ex.__name << std::endl;
ex.__print_args(os);
return os;
}
void Gaming::InsufficientDimensionsEx::__print_args(std::ostream &os) const {
os << "minWidth: " << getExpHeight() << " minHeight: " << getExpHeight() << std::endl;
os << "width " << getWidth() << " height " << getHeight();
}
InsufficientDimensionsEx::InsufficientDimensionsEx(unsigned minWidth, unsigned minHeight, unsigned width,
unsigned height):DimensionEx(minWidth, minHeight, width, height){
setName("InsufficientDimensionsEx");
}
void OutOfBoundsEx::__print_args(std::ostream &os) const {
os << getWidth() << ' ' << getHeight() << " is out of bounds of " << getExpWidth() << ' ' << getExpHeight();
}
OutOfBoundsEx::OutOfBoundsEx(unsigned maxWidth, unsigned maxHeight, unsigned width, unsigned height)
:DimensionEx(maxWidth, maxHeight, width, height) {
setName("OutOfBoundsEx");
}
void PositionEx::__print_args(std::ostream &os) const {
os << __x << ' ' << __y << "is already occupied";
}
PositionEx::PositionEx(unsigned x, unsigned y) {
__x = x;
__y = y;
setName("PositionEx");
}
PositionNonemptyEx::PositionNonemptyEx(unsigned x, unsigned y):PositionEx(x,y) {
setName("PositionNonemptyEx");
}
PositionEmptyEx::PositionEmptyEx(unsigned x, unsigned y):PositionEx(x,y) {
setName("PositionEmptyEx");
}
void Gaming::PosVectorEmptyEx::__print_args(std::ostream &os) const {
}
PosVectorEmptyEx::PosVectorEmptyEx() {
setName("PosVectorEmptyEx");
}
}