# coding: utf-8

"""
    NVDB API LES V3

    API for å lese vegobjekter, vegnett og transaksjoner fra NVDB  # noqa: E501

    OpenAPI spec version: 0.0.1
    Contact: nvdb@vegvesen.no
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six

class VegobjektLokasjon(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """
    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'kommuner': 'list[int]',
        'fylker': 'list[int]',
        'kontrakter': 'list[VegobjektLokasjonKontrakter]',
        'riksvegruter': 'list[VegobjektLokasjonRiksvegruter]',
        'vegsystemreferanser': 'list[Vegsystemreferanse]',
        'stedfestinger': 'list[VegobjektLokasjonStedfesting]',
        'lengde': 'float'
    }

    attribute_map = {
        'kommuner': 'kommuner',
        'fylker': 'fylker',
        'kontrakter': 'kontrakter',
        'riksvegruter': 'riksvegruter',
        'vegsystemreferanser': 'vegsystemreferanser',
        'stedfestinger': 'stedfestinger',
        'lengde': 'lengde'
    }

    def __init__(self, kommuner=None, fylker=None, kontrakter=None, riksvegruter=None, vegsystemreferanser=None, stedfestinger=None, lengde=None):  # noqa: E501
        """VegobjektLokasjon - a model defined in Swagger"""  # noqa: E501
        self._kommuner = None
        self._fylker = None
        self._kontrakter = None
        self._riksvegruter = None
        self._vegsystemreferanser = None
        self._stedfestinger = None
        self._lengde = None
        self.discriminator = None
        if kommuner is not None:
            self.kommuner = kommuner
        if fylker is not None:
            self.fylker = fylker
        if kontrakter is not None:
            self.kontrakter = kontrakter
        if riksvegruter is not None:
            self.riksvegruter = riksvegruter
        if vegsystemreferanser is not None:
            self.vegsystemreferanser = vegsystemreferanser
        if stedfestinger is not None:
            self.stedfestinger = stedfestinger
        if lengde is not None:
            self.lengde = lengde

    @property
    def kommuner(self):
        """Gets the kommuner of this VegobjektLokasjon.  # noqa: E501

        Kommuner dette objektet er stedfestet i.  # noqa: E501

        :return: The kommuner of this VegobjektLokasjon.  # noqa: E501
        :rtype: list[int]
        """
        return self._kommuner

    @kommuner.setter
    def kommuner(self, kommuner):
        """Sets the kommuner of this VegobjektLokasjon.

        Kommuner dette objektet er stedfestet i.  # noqa: E501

        :param kommuner: The kommuner of this VegobjektLokasjon.  # noqa: E501
        :type: list[int]
        """

        self._kommuner = kommuner

    @property
    def fylker(self):
        """Gets the fylker of this VegobjektLokasjon.  # noqa: E501

        Fylker dette objektet er stedfestet i.  # noqa: E501

        :return: The fylker of this VegobjektLokasjon.  # noqa: E501
        :rtype: list[int]
        """
        return self._fylker

    @fylker.setter
    def fylker(self, fylker):
        """Sets the fylker of this VegobjektLokasjon.

        Fylker dette objektet er stedfestet i.  # noqa: E501

        :param fylker: The fylker of this VegobjektLokasjon.  # noqa: E501
        :type: list[int]
        """

        self._fylker = fylker

    @property
    def kontrakter(self):
        """Gets the kontrakter of this VegobjektLokasjon.  # noqa: E501

        Kontrakter stedfestet på samme sted som dette objektet.  # noqa: E501

        :return: The kontrakter of this VegobjektLokasjon.  # noqa: E501
        :rtype: list[VegobjektLokasjonKontrakter]
        """
        return self._kontrakter

    @kontrakter.setter
    def kontrakter(self, kontrakter):
        """Sets the kontrakter of this VegobjektLokasjon.

        Kontrakter stedfestet på samme sted som dette objektet.  # noqa: E501

        :param kontrakter: The kontrakter of this VegobjektLokasjon.  # noqa: E501
        :type: list[VegobjektLokasjonKontrakter]
        """

        self._kontrakter = kontrakter

    @property
    def riksvegruter(self):
        """Gets the riksvegruter of this VegobjektLokasjon.  # noqa: E501

        Riksvegruter stedfestet på samme sted som dette objektet.  # noqa: E501

        :return: The riksvegruter of this VegobjektLokasjon.  # noqa: E501
        :rtype: list[VegobjektLokasjonRiksvegruter]
        """
        return self._riksvegruter

    @riksvegruter.setter
    def riksvegruter(self, riksvegruter):
        """Sets the riksvegruter of this VegobjektLokasjon.

        Riksvegruter stedfestet på samme sted som dette objektet.  # noqa: E501

        :param riksvegruter: The riksvegruter of this VegobjektLokasjon.  # noqa: E501
        :type: list[VegobjektLokasjonRiksvegruter]
        """

        self._riksvegruter = riksvegruter

    @property
    def vegsystemreferanser(self):
        """Gets the vegsystemreferanser of this VegobjektLokasjon.  # noqa: E501

        Vegsystemreferanser der objektet er stedfestet  # noqa: E501

        :return: The vegsystemreferanser of this VegobjektLokasjon.  # noqa: E501
        :rtype: list[Vegsystemreferanse]
        """
        return self._vegsystemreferanser

    @vegsystemreferanser.setter
    def vegsystemreferanser(self, vegsystemreferanser):
        """Sets the vegsystemreferanser of this VegobjektLokasjon.

        Vegsystemreferanser der objektet er stedfestet  # noqa: E501

        :param vegsystemreferanser: The vegsystemreferanser of this VegobjektLokasjon.  # noqa: E501
        :type: list[Vegsystemreferanse]
        """

        self._vegsystemreferanser = vegsystemreferanser

    @property
    def stedfestinger(self):
        """Gets the stedfestinger of this VegobjektLokasjon.  # noqa: E501

        Stedfestinger til vegnettet for objektet.  # noqa: E501

        :return: The stedfestinger of this VegobjektLokasjon.  # noqa: E501
        :rtype: list[VegobjektLokasjonStedfesting]
        """
        return self._stedfestinger

    @stedfestinger.setter
    def stedfestinger(self, stedfestinger):
        """Sets the stedfestinger of this VegobjektLokasjon.

        Stedfestinger til vegnettet for objektet.  # noqa: E501

        :param stedfestinger: The stedfestinger of this VegobjektLokasjon.  # noqa: E501
        :type: list[VegobjektLokasjonStedfesting]
        """

        self._stedfestinger = stedfestinger

    @property
    def lengde(self):
        """Gets the lengde of this VegobjektLokasjon.  # noqa: E501

        Lengden objektet har på vegnettet  # noqa: E501

        :return: The lengde of this VegobjektLokasjon.  # noqa: E501
        :rtype: float
        """
        return self._lengde

    @lengde.setter
    def lengde(self, lengde):
        """Sets the lengde of this VegobjektLokasjon.

        Lengden objektet har på vegnettet  # noqa: E501

        :param lengde: The lengde of this VegobjektLokasjon.  # noqa: E501
        :type: float
        """

        self._lengde = lengde

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value
        if issubclass(VegobjektLokasjon, dict):
            for key, value in self.items():
                result[key] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, VegobjektLokasjon):
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        return not self == other
