Пример #1
0
class AirplaneType():
    def __init__(self, plane_type_id="", make="", model="", capacity=""):
        self.__model_validation = Validator()

        self.__plane_type_id = plane_type_id
        self.__make = make
        self.__model = model
        self.__capacity = capacity

        # Dictionary keeping all the different header formats for the destination model
        self.__header_format_dict = {
            "default": self.get_model_header_default_format
        }

        # Dictionary keeping all the different list formats for the destination model
        self.__list_info_dict = {"default": self.get_model_list_default_info}

    def get_model_header_format(self, header_flag):
        '''Takes a header flag as an argument and uses the dictionary to return the correct format back'''
        return self.__header_format_dict[header_flag]()

    def get_model_list_info(self, header_flag):
        '''Takes a header flag as an argument and uses the dictionary to return the correct format back'''
        return self.__list_info_dict[header_flag]()

    def get_model_header_default_format(self):
        '''Default format for displaying the destination model header'''
        return "{:10}{:20}{:17}{:20}{:71}".format("Index:", "Airplane type:",
                                                  "Make:", "Model:",
                                                  "Capacity:")

    def get_model_list_default_info(self):
        '''Default format for displaying the destination model in a list'''
        returnObject = ("     {:20}{:17}{:20}{:71}|\n".format(
            self.get_plane_type_id(), self.get_make(), self.get_model(),
            self.get_capacity()))
        return returnObject

    def raw_info(self):
        '''A function that returns a string in the format that the CSV document needs before writing'''
        return str(self.__plane_type_id) + "," + str(self.__make) + "," + str(
            self.__model) + "," + str(self.__capacity)

    def __str__(self):
        return "Airplane type {:>2} \nMake: {:>2} \nModel: {:>2} \nCapacity: {:>2}".format(
            self.__plane_type_id, self.__make, self.__model, self.__capacity)

    def get_plane_type_id(self):
        return self.__plane_type_id

    def set_plane_type_id(self, plane_type_id):
        if self.__model_validation.validate_airplane_typeid(plane_type_id):
            self.__plane_type_id = plane_type_id
            return True
        else:
            return False

    def get_make(self):
        return self.__make

    def set_make(self, make):
        if self.__model_validation.validate_airplane_make(make):
            self.__make = make
            return True
        else:
            return False

    def get_model(self):
        return self.__model

    def set_model(self, model):
        if self.__model_validation.validate_airplane_model(model):
            self.__model = model
            return True
        else:
            return False

    def get_capacity(self):
        return self.__capacity

    def set_capacity(self, capacity):
        if self.__model_validation.validate_airplane_capacity(str(capacity)):
            self.__capacity = capacity
            return True
        else:
            return False
Пример #2
0
class Airplane():
    def __init__(self, insignia='', make='', model='', capacity=0):
        self.__models_validation = Validator()
        self.__insignia = insignia

        self.__make = make
        self.__model = model
        self.__capacity = capacity

        # A dictionary that is used in the validate model process
        self.__validation_dict = {self.get_insignia: self.set_insignia}

        self.__status = "Not in use"
        self.__current_destination = "N/A"
        self.__flight_number = "N/A"
        self.__date_available = "N/A"

    def __str__(self):
        return "Insignia: {:>2}\nMake: {:>2}\nModel: {:>2}\nMaximum seats: {:>2}".format(
            self.__insignia, self.__make, self.__model, self.__capacity)

    def raw_info(self):
        '''A function that returns a string in the format that the CSV document needs before writing'''
        return "NA" + self.__make + self.__model + "," + self.__insignia + "\n"

    def get_validation_dict(self):
        return self.__validation_dict

    def set_status(self, status):
        self.__status = status

    def get_status(self):
        return self.__status

    def set_current_destination(self, destination):
        self.__current_destination = destination

    def get_current_destination(self):
        return self.__current_destination

    def set_flight_number(self, flight_number):
        self.__flight_number = flight_number

    def get_flight_number(self):
        return self.__flight_number

    def set_date_available(self, date):
        self.__date_available = date

    def get_date_available(self):
        return self.__date_available

    def handle_key_value(self, key, value):
        '''A special function to handle the validate model function in the ModelAPI for validating the model'''
        return value(key())

    def get_insignia(self):
        return self.__insignia

    def set_insignia(self, new_insignia):
        if self.__models_validation.validate_airplane_insignia(new_insignia):
            self.__insignia = new_insignia
            return True
        else:
            return False

    def get_make(self):
        return self.__make

    def set_make(self, new_make):
        if self.__models_validation.validate_airplane_make(new_make):
            self.__make = new_make
            return True
        else:
            return False

    def get_model(self):
        return self.__model

    def set_model(self, new_model):
        if self.__models_validation.validate_airplane_model(new_model):
            self.__model = new_model
            return True
        else:
            return False

    def get_capacity(self):
        return self.__capacity

    def set_capacity(self, new_capacity):
        if self.__models_validation.validate_airplane_capacity(new_capacity):
            self.__capacity = new_capacity
            return True
        else:
            return False

    def change_date_time_format(self, date_string):
        if date_string != "N/A":
            date_string = date_string[:-3].replace("T", " ")
        return date_string

    def get_model_header_format(self, header_flag):
        '''The default header format for displaying airplanes in a list'''
        return "{:10}{:14}{:12}{:12}{:14}{:19}{:17}{:17}{:23}".format(
            "Index: ", "Insignia:", "Make:", "Model:", "Capacity:", "Status:",
            "Destination:", "Flight number:", "Date/time available:")

    def get_model_list_info(self, header_flag):
        '''The default format for displaying a list of airplanes'''
        returnObject = "     {:14}{:12}{:12}{:14}{:19}{:17}{:17}{:23}|\n".format(
            self.get_insignia(), self.get_make(), self.get_model(),
            self.get_capacity(), self.get_status(),
            self.get_current_destination(), self.get_flight_number(),
            self.change_date_time_format(self.get_date_available()))
        return returnObject