Skip to content
Snippets Groups Projects
position.cpp 1.34 KiB
Newer Older
  • Learn to ignore specific revisions
  • Martin Weinelt's avatar
    Martin Weinelt committed
    //
    // Created by hexa on 20.11.21.
    //
    
    #include "position.h"
    #include <iostream>
    
    using std::cerr;
    using std::endl;
    
    bool ParkingPosition::park() {
        if (isOccupied()) {
            cerr << "Parkplatz ist bereits besetzt." << endl;
            return false;
        }
        occupied = true;
        return true;
    }
    
    bool ParkingPosition::parkout() {
        if (isLeased()) {
            cerr << "Parkplatz ist dauervermietet." << endl;
            return false;
        }
        if (!isOccupied()) {
            cerr << "Parkplatz ist nicht besetzt." << endl;
            return false;
        }
    
        occupied = false;
        return true;
    }
    
    const bool &ParkingPosition::isOccupied() const {
        return occupied;
    }
    
    bool ParkingPosition::lease(string name) {
        if (isOccupied()) {
            cerr << "Parkplatz ist besetzt, und kann daher nicht vermietet werden." << endl;
            return false;
        }
        if (isLeased()) {
            cerr << "Parkplatz ist bereits vermietet." << endl;
            return false;
        }
    
        tenant = name;
        return true;
    }
    
    bool ParkingPosition::release() {
        if (!isLeased()) {
            cerr << "Parkplatz ist nicht vermietet, kann also nicht gekündigt werden." << endl;
            return false;
        }
    
        tenant = "";
        return true;
    }
    
    const string &ParkingPosition::getTenant() const {
        return tenant;
    }
    
    bool ParkingPosition::isLeased() const {
        return !tenant.empty();
    }