# -*- coding: utf-8 -*-

from Model.Network.Point import Point

class Node(object):
    def __init__(self, id:str, name:str,
                 x:float = 0.0, y:float = 0.0):
        super(Node, self).__init__()

        self.id = id
        self._name = name
        self.pos = Point(x, y)

    def __getitem__(self, name):
        ret = None

        if name == "name":
            ret = self._name
        elif name == "id":
            ret = self.id
        elif name == "pos":
            ret = f"({self.pos.x},{self.pos.y})"

        return ret

    def __setitem__(self, name, value):
        if name == "name":
            self._name = value
        elif name == "id":
            self.id = value

    @property
    def name(self):
        return self._name

    def setPos(self, x, y):
        self.pos.x = x
        self.pos.y = y