virtual const Position::PositionTree& positionTree() const = 0; virtual Position::PositionList positionList() const = 0; virtual IDList positionIdList() const = 0; virtual Position::Position positionData(const ID &idPosition) const = 0; virtual Position::Position parent(const ID &idPosition) const = 0; virtual Position::PositionTree childrenTree(const ID &idPosition) const = 0; virtual Position::PositionList childrenList(const ID &idPosition, int level = -1) const = 0; virtual IDList childrenIdList(const ID &idPosition, int level = -1) const = 0; virtual bool hasChildren(const ID &positionId) const = 0; virtual Position::PositionList siblingsList(const ID &idPosition) const = 0; virtual IDList externalPositionIdList() const = 0; // Замещаемые позиции.