Я использую Жирный для Delphi, который имеет реализацию OCL. OCL хорош в фильтрационных списках и т. Д. Но я не нашел хорошего общего пути прохождения связанных списков.Следуйте за связанным списком в OCL
Предположим, у меня есть класс PlanMission
. Он содержит единственную ссылку PlanMission.previous
, которая указывает на себя. Он также имеет логический атрибут isDummy
.
Я хочу просмотреть список PlanMissions
, пока у меня нет экземпляра с isDummy
.
я могу сделать
if isdummy then
self
else if previous->notEmpty and previous.isdummy then
previous
else if previous.previous->notEmpty and previous.previous.isdummy then
previous.previous
else
nil
endif
endif
endif
То, что я действительно хочу что-то вроде этого:
traverseList(previous, isDummy)
traverseList
не существует, но она должна иметь 2 параметра.
previous
: Ссылка следоватьisDummy
: Логическое состояние, так что я знаю, когда остановиться
Как это можно сделать?
Редактировать код Я не хочу, чтобы какой-либо код Delphi. Я хочу код в OCL. Те, которые используют Bold, знают, что я имею в виду. OCL - это язык запросов с объектами запроса, атрибутами и т. Д. Он не содержит побочных эффектов, поэтому он является только для чтения. Введение в OCL можно найти here.
Я не понимаю. Вы хотите сделать это в Delphi? Как Odes OCL вступает в игру? – jpfollenius
@jpfollenius Он спрашивает: tez codez plz ?? – EProgrammerNotFound
Отсутствует код delphi, это тривиально в Delphi. OCL очень отличается от Delphi. Он часто используется в modeldriven развития. Полужирный для Delphi имеет одну реализацию OCL. –