コード例 #1
0
ファイル: properties.py プロジェクト: rg666/gaphor
    def _set_many(self,
                  obj,
                  value,
                  from_opposite=False,
                  from_load=False) -> None:
        if not isinstance(value, self.type):
            raise AttributeError(
                f"Value should be of type {self.type.__name__}")

        # Set the actual value
        c: collection = self._get_many(obj)
        if value in c:
            if from_load:
                c.items.remove(value)
                c.items.append(value)
            return

        c.items.append(value)
        try:
            self._set_opposite(obj, value, from_opposite)
        except Exception:
            c.items.pop()
            raise

        self.handle(AssociationAdded(obj, self, value))
コード例 #2
0
    def _set_many(self, obj, value, from_opposite) -> None:
        if not isinstance(value, self.type):
            raise AttributeError(
                f"Value should be of type {self.type.__name__}")

        # Set the actual value
        c: collection = self._get_many(obj)
        if value in c:
            return

        c.items.append(value)
        self._set_opposite(obj, value, from_opposite)

        self.handle(AssociationAdded(obj, self, value))