Описание языка ограничений

advertisement
Описание языка ограничений.
№ displayedName /
name
Описание элемента
Элементы группа «Root Diagrams»
1
Metamodel
Корневой элемент модели задания ограничений. Позволяет задавать
Constraints /
ограничения на некоторую метамодель визуальных языков.
metamodelConstraints
Содержит поля :
 Name --- собственное имя модели ограничений
 Metamodel Name --- имя метамодели, на которую хотим наложить
ограничения
В качестве этого имени может выступать ключевое слово All,
которое означает, что написанные в этой модели ограничения
будут проверяться для всех метамоделей.
 Output Dir Path --- либо 1) абсолютный путь до папки, в которую
будет генерироваться код с ограничениями,
либо 2) относительный путь от папки «bin» из
папки с исходниками QReal до пакпи, в которую будет
генерироваться код с ограничениями
 Dir Path to QReal --- абсолютный либо относительный (отн-но
Output Dir Path) путь до папки с исходниками QReal
Все эти поля обязательно должны быть заполнены.
2
Constraints Diagram /
constraintsDiagram
Основная диаграмма, на которую непосредственно будут кидаться
элементы для задания ограничений. Позволяет описывать
ограничения на конкретный визуальный язык из уже
рассматриваемой метамодели.
Содержит поля :
 Name --- собственное имя диаграммы (задавать не обязательно)
 Language Name --- имя визуального языка, на которое
накладываем ограничения (обязательно)
В качестве этого имени тут тоже может выступать ключевое
слово All, которое означает, что написанные на этой диаграмме
ограничения будут проверяться для всех языков
рассматриваемой метамодели.
Должен вкладываться в Metamodel Constraints.
Элементы группа «DSL Constraints Elements»
3
Node Constraint /
nodeConstraint
4
Edge Constraint /
edgeConstraint
5
6
Nodes Constraint /
nodesConstraint
Edges Constraint /
edgesConstraint
Основные элементы задания
ограничений.
Содержат поля :
 Error Type --- тип
ошибки, который зависит
от важности ограничения.
Это нужно для
корректного
информирования об
ошибке, если данное
ограничение не будет
выполнено.
Есть три вида ошибок :
для одного типа
соответствующего
элемента
рассматриваемого
визуального языка.
для
узла.
для
связи.
Поля :
 Name --- имя типа
элемента, на которое
накладывается
ограничение
для некоторого
подмножества элементов
визуального языка одного
и того же
соответствующего
метатипа (узел / связь).
для
узлов
 warning (по
умолчанию;
элемент, для
которого не
выполняется
ограничение, будет
подсвечен красным Поля :
для
цветом)
 critical (аналогично,
 Name --- имя
связей
но ко всему
некоторого типа
прочему выдается
элемента, на
текстовое
подмножество
сообщение)
которого
 verification
накладывается
(поведение этого
ограничение.
типа ошибки будет
Также есть
либо warning, либо
возможность в
critical в
качестве значения
зависимости
этого поля записать
настроек во время
ключевое слово All
написания
(или AllNodes /
диаграмм на
AllEdges), что
рассматриваемом
визуальном языке)
означает, что
 Text of error --- текст
ограничение задается
выдаваемого сообщения об
на все элементы
ошибке при невыполнении
соответствующего
ограничения. Причем этот
метатипа.
текст будет выдаваться
только в случае
 Selection --соответствующего типа
«выборка» из
ошибки.
элементов,
принадлежащих типу,
указанному в Name.
Должны вкладываться в
Constraints Diagram.
Это обычное
текстовое выражение
вида : «свойство
элемента» «знак
сравнения» «значение
свойства».
Тут так же можно
написать ключевое
слово All
Элемент групп « Node Constraints Properties» и « Edge Constraints Properties»
7
Элемент языка ограничений для задания условия на некоторое
свойство элемента, на которое накладывается ограничение.
Property /
propertyNode
Поля :
 Property --- имя некоторого свойства элемента, на которое
накладывается ограничение.
 Sign --- знак сравнения (т.е. “>”, “ <”, “ >=”, “<=”, “!=”, “==”)
 Value --- значение свойства, с которым хотим сравнивать.
Отметим, что Value будет иметь тип «число», если введенное
пользователем похоже на число, иначе тип «строка». Это верно и
для «выборок» для всех остальных элементов языка ограничений.
Должен вкладываться в Node Constraint, Nodes Constraint, Edge Constraint
или Edges Constraint.
Элементы группы « Edge Constraints Properties»
8
Begin Node /
beginNode
Для задания ограничений на
начальный узел
рассматриваемой связи.
Должен вкладываться в Edge
Constraint или Edges Constraint.
9
End Node / endNode
Для задания ограничений на
конечный узел рассматриваемой
связи.
Должен вкладываться в Edge
Constraint или Edges Constraint.
Элементы группы « Node Constraints Properties»
10 Parent / parent
Для задания ограничений на
«родителя» (в смысле
контейнера) рассматриваемого
узла.
Должен вкладываться в Node
Содержат поля :
 Name ---- имя нашего элемента
ограничения. (не обязательно;
нужно только для наглядности)
 Exists --- логическое условие на
необходимость существования
рассматриваемого элемента.
Возможны три варианта :
 True --- обязательное
существование элемента
 False --- обязательное
отсутствие этого
элемента
 Doesn’t matter --- не
имеет значения его
статус существования.
Constraint или Nodes Constraint.
11 Childrens / childrens
Элемент для задания
ограничений на подмножество
всех «детей» (в смысле
контейнеров) рассматриваемого
узла.
Должен вкладываться в Node
Constraint или Nodes Constraint.
12 Incoming Links /
incomingLinks
Элемент для задания
ограничений на подмножество
входящих в рассматриваемый
узел связей.
Должен вкладываться в Node
Constraint или Nodes Constraint.
13 Outgoing Links /
outgoingLinks
Элемент для задания
ограничений на подмножество
выходящих из рассматриваемого
узла связей.
Должен вкладываться в Node
Constraint или Nodes Constraint.
14 Incoming Nodes /
incomingNodes
Элемент для задания
ограничений на подмножество
входящих в рассматриваемый
узел узлов, т.е. узлов на концах
входящих связей.
Должен вкладываться в Node
Constraint или Nodes Constraint.
15 Outgoing Nodes/
outgoingNodes
Элемент для задания
ограничений на подмножество
выходящих из рассматриваемого
узла узлов, т.е. узлов на концах
выходящих связей.
Должен вкладываться в Node
Constraint или Nodes Constraint.
Содержат поля :
 Name --- Здесь можно либо
оставить строчку по
умолчанию, либо записать
ключевое слово All. (не
обязательное поле, нужно
только для наглядности).
 Selection --- «выборка» из
соответсвующих элементов. Это
так же обычное текстовое
выражение вида : «свойство
элемента» «знак сравнения»
«значение свойства». Если
выборка пуста, то ограничение
проверяется для всех
рассматриваемых элементов.
 Count --- логическое условие на
количество рассматриваемых
элементов. Задается в текстовом
виде : «знак сравнения»
«число». Если поле пустое, то
это условие на элементы и не
проверяется.
Замечание. Все элементы языка ограничений, кроме PropertyNode, являются
контейнерами, т.е. внутрь этих элементов можно класть другие элементы. Ниже приведена
таблица, показывающая, какие элементы могут быть внутри перечисленных контейнеров :
№ Контейнер
Типы элементов, которые может содержать данный
контейнер
1
Metamodel Constraints
constraintsDiagram
2
Constraints Diagram
Все элементы языка (для удобства пользователя)
3
Node Constraint
Nodes Constraint
Parent
Childrens
Incoming Nodes
Ooutgoing Nodes
BeginNode
EndNode
propertyNode
(т.е. Любой элемент, задающий
ограничения на узлы )
parent
childrens
incomingLinks
outgoingLinks
incomingNodes
outgoingNodes
4
Edge Constraint
EdgesConstraint
Incoming Links
Incoming Nodes
(т.е. Любой элемент, задающий
ограничения на связи)
propertyNode
beginNode
endNode
Related documents
Download