:= (assignment operator), 568
≪ ≫ (guillemets), 606
+= (assignment operator), 568
absolute coordinates (Draw2d), 323–324
abstract syntax
definition of, 4
developing with EMF (Eclipse Modeling Framework)
Model Compare, 11
Model Query, 11
Model Search, 11
Model Transaction, 10
Model Validation, 10
persistence alternatives, 11
AbstractCommand class, 463
AbstractEditPart (GEF), 325
AbstractProviderConfiguration class, 378
AbstractTransactionalCommand, 464
access keyword, 553
accessorCall() function, 219
ActionFilterProvider extension-point, 424–426
ActionFilterService, 423–426
actions. See also specific actions
selection actions, 342
subtopic actions, 90–93
for user interface plug-ins, 307–310
activate() method, 336
add() operation, 582
addChild() method, 334–335
addChildVisual() method, 335
addFields() method, 206
addFixedChild() method, 166
addNotationalListeners() method, 211, 546
addNotify() method, 335
addSuffixNumber() operation, 593
AdviceContent operations, 627
AdviceContent properties, 626
Aggregation Link Mapping (color modeling diagram), 198–200
aliases. See shortcuts
Align Bottom toolbar element, 356
Align Center toolbar element, 355
Align Left toolbar element, 355
Align Middle toolbar element, 356
Align Right toolbar element, 355
Align Top toolbar element, 355
AlignmentAction, 349
All Compartments toolbar element, 356
allSubobjects() operation, 579
allSubobjectsOfKind() operation, 579
allSubobjectsOfType() operation, 579
Amalgam, 15
Amalgamation project, 20
annotations
annotation figure definition (color modeling diagram), 188–189
Annotation Mapping (color modeling diagram), 195
in Ecore metamodel, 33
Ant, 649
Ant tasks, OML and, 243–244
Appearance properties (diagrams), 358–359
AppearancePreferencePage class, 206
AppearancePreferencePage.xpt template, 216–217
Apply Appearance Property toolbar element, 355
archetype figure definition (color modeling diagram), 182–184
AROUND statement (Xpand), 617–619
Arrange All toolbar element, 355
Arrange Selected toolbar element, 355
artifacts (DSL Toolkit)
abstract elements, 17
Practitioner, 18–19
Toolsmith artifacts, 17–18
artwork, adding to products, 304–305
asBoolean() operation, 591
asFloat() operation, 592
asInteger() operation, 592
asList() operation, 583
asOrderedTuple() operation, 578
aspects (Xpand), 647–648
assert expression, 576–577
assignment operator (:=), 568
assignment operator (+=), 568
asTransformation() operation, 582
ATL (Atlas Transformation Language), 231
AttributeParserProvider class, 221–224
audits
audits and metrics model, 532–533
for mindmap diagram, 97–103
Auto Size toolbar element, 356
Background Color property (figures), 508
BDM (Business Domain Modeling), 22
bending connections (GEF), 351–352
Boolean operations, 622
Border Layout, 513
Border property (figures), 508
borders
Border Layout, 513
Compound Border, 510
Custom Border, 510
Line Border, 510
Margin Border, 510
Both command (Diagram menu), 361
BPDM (Business Process Definition Metamodel), 50, 665
BPEL, mapping with BPMN, 231
BPMN (Business Process Modeling Notation), 50, 665
BPMN2, 14
mapping with BPEL, 231
Bring Forward command (Order menu), 361
Bring to Front command (Order menu), 361
business domain model, 51–53
Business Domain Modeling (BDM), 22
Business Process Modeling Notation. See BPMN
cached extensions (Xtend), 639
canExecute() method, 483
canonical containers, 547
Canvas, 505–506
Canvas Mapping, 520
mindmap diagram, 71
requirements diagram, 108
casting, 635
chain expression, 634–635
Checks language, 228
ChopboxAnchor (Draw2d), 323
class2columns() query, 600
classes. See specific classes
clipboardSupport extension-point, 457–458
clipping in Draw2d, 321
clone() operation, 579
Coad, Peter, 57
code generation
in EMF, 34–35
for mindmap domain model, 43–45
code modification, GMF customization options, 65
collapsible compartments, 518
collect() operation, 564, 631–632
collections, 630
operations, 623–624
properties, 623
collectselect imperative iterate expression, 567
color in graphical notations, 57
color modeling diagram, 22, 181–182
annotation figure definition, 188–189
archetype figure definition, 182–184
color preferences, 205–220
addNotationalListeners() method, 211
DiagramAppearancePreferencePage class, 207–208
getPreferenceColor() method, 211
initializeDefaultPreferences() method, 209
initPreferenceStoreListener() method, 211
Messages class, 209
messages.properties file, 210
NodeEditPart.xpt template file, 212, 215–216
preference page templates, 216–220
PreferencePropertyChangeListener class, 211, 214
setForegroundColor() method, 211
setForegroundColor() method, overriding, 205
toPreferenceConstant() function, 213
updateArchetypeColor() method, 211
custom parsers, 220
AttributeParserProvider class, 221–224
OperationParserProvider class, 224–225
generalization link definition, 186–187
generation, 201
gradient figures, 201–205
mapping definition
Aggregation Link Mapping, 198–200
Annotation Mapping, 195
DNC Association Mapping, 195–197
DNC Canvas Mapping, 190
Generalization Mapping, 200–201
Moment-Interval Archetype Mapping, 191–192
Package Mapping, 194
Role Archetype Mapping, 193
package figure definition, 185–186
tooling definition, 189
CombinedTemplateCreationEntry, 344
combining layouts, 515
comma-separated values (CSV) files, generating, 281–282
command infrastructure (GMF runtime), 462–464
commands. See specific commands
comments
OML, 593
Xtend, 637
Compartments, 518
compliance, specification compliance, 668
COMPONENT_ROLE key, 343
Compound Border, 510
concrete syntax development, 4, 12
GMF (Graphical Modeling Framework). See GMF runtime; GMF Tooling
TMF (Textual Modeling Framework), 12
configuration properties (transformations), 555
configureGraphicalViewer() method, 327
connection bend interactions (GEF), 351–352
connection creation interactions (GEF), 349–350
connection edit interactions (GEF), 350–351
connection EditParts, 330–331
Connection figures, creating for scenario diagram, 155–158
connection handles (diagrams), 364–365
connection navigation, 657–658
ConnectionBendpointTracker, 352
ConnectionCreationTool (GEF), 349
ConnectionEndpointEditPolicy, 351
ConnectionRouter (Draw2d), 322
Connections, 517
bending, 351–352
in Draw2d, 322–323
editing, 350–351
constraints, node constraints, 526
ContainerEditPolicy, 348
containers, canonical, 547
Contains Shortcuts To property (Gen Diagram), 536
context menus, 363–364
contributing to GMF (Graphical Modeling Framework), 546
contributionItemProvider extension-point, 409–418
ContributionItemService
contributionItemProvider extension-point, 409–418
overview, 408
coordinate systems in Draw2d, 323–324
copy() operation, 582
Copyright Text property (Gen Editor Generator), 534
Core properties (diagrams), 358
create expression, 635
createDecorators() method, 498
createDefaultEditPolicies() method, 385, 474
createEditPart() method, 334
createEditPolicies() method, 333–335, 385, 481
createEmptyDocument() method, 126
createEmptyModel() operation, 582
createFigure() method, 328
createGraphicEditPart() method, 382
createMainFigure() method, 114
createNodePlate() method, 516
createPages() method, 129–130
createPartControl() method, 139
creation interactions (GEF)
CreateRequests
consuming, 345
producing, 344
creation sequence, 345–347
Creation Wizard, 137–138
Creation Wizard Category ID property (Gen Diagram), 538
CSV (comma-separated values) files, generating, 281–282
Custom Behavior element, 539
Custom Border, 510
custom EditPolicy, 493–497
custom figures, 89–90
custom layout, 82–84
custom parsers (color modeling diagram), 220
AttributeParserProvider class, 221–224
OperationParserProvider class, 224–225
Custom Property Tab (requirements diagram), 140
custom style, 490–493
customization options (GMF)
code modification, 65
dynamic templates, 65–66
extension-points, 65
model extensions, 66
dashboard view (GMF), 66–67
Data Object figure, creating for scenario diagram, 158–159
Data Object Mapping (scenario diagram), 165
database persistence, 177–181
dataType2columns() query, 600
dataType2primaryKeyColumns() mapping, 603–604
deactivate() method, 336–337
deactivating EditParts, 336–337
declaring extension-points, 373–375
decorateView() method, 488
DecorationService
decoratorProvider extension-point, 392–396
overview, 392
decoratorProvider extension-point, 392–396
decorators, custom, 66, 497–500
deepclone() operation, 580
Default Size (diagram elements), 516
DEFINE statement (Xpand), 607–608
definition operations, 627
definition properties, 627
DelegatingLayout (Draw2d), 323
delete interactions (GEF), 342–343
DeleteAction, 342
dependencies (GEF), 318
deploying DSLs, 303
artwork, 304–305
generation models, 310–311
requirements.product, 312
source deployment, 312–313
user interface plug-ins, 305–310
designing graphical notations, 56–57
developing DSLs, 6
development workflow (DSL Toolkit), 18–20
DI (Diagram Interchange), 664
diagram editor, 467–468
cycling between diagram editor and palette, 653–654
Diagram File Extension property (Gen Editor Generator), 534
Diagram Interchange (DI), 664
Diagram Label, 517
Diagram menu commands, 361
DiagramAppearancePreferencePage class, 207–208
DiagramDecoratorProvider, 396
diagramEventBrokerProvider extension-point, 441–443
DiagramEventBrokerService extension-point, 441–443
DiagramRootEditPart (GEF), 326
diagrams. See also specific diagrams
adding EditParts to, 334–336
connection handles, 364–365
constructing from scratch
compared to generated diagrams, 485–486
connections, 479–484
diagram editor, 467–468
domain model, 468–469
EditPart definition, 473–475
New Diagram Wizard, 475–476
palette definition, 470–471
properties view, configuring, 476–479
view definition, 471–473
context menus, 363–364
diagram elements
Compartment, 518
Connection, 517
Diagram Label, 517
Node, 516–517
overview, 516
Diagram menu, 361
extending
custom decorator, 497–500
custom EditPolicy, 493–497
custom style, 490–493
scenario diagram custom view and edit providers, 486–489
figures
changing appearance based on preference changes, 546
changing dynamically, 546
changing properties of, 547
making nonresizable, 547
viewing elements on diagrams, 547
including in multipage editors, 548
navigation, 655
Order menu, 361
Outline view, 366
Palette view, 360
Requirements diagram partition, 172–177
subprocess partitions, 171–172
pop-up bars, 365
preferences, 367–368
properties
Appearance properties, 358–359
Core properties, 358
Rulers & Grid properties, 356–358
toolbar elements, 354–356
View menu, 361–363
dialogs. See specific dialogs
disjunction in mapping operations, 562
disjuncts keyword, 562
DNC Association Mapping (color modeling diagram), 195–197
DNC Canvas Mapping (color modeling diagram), 190
documentProviders extension-point, 453–455
doExecuteWithResult() method, 483
Domain File Extension property (Gen Editor Generator), 535
Domain Gen Model property (Gen Editor Generator), 535
domain models, 108, 468–469. See also metamodels
best practices, 30
business domain models, 264–276
business DSL, 51–53
creating DSLs, 29–31
dynamic instance models, 262
dynamic instances, 38–39
Ecore models, 39
importing, 31
mindmap DSL, 39–40
code generation, 43–45
creating, 41–42
generator model, creating, 42
OCL, adding, 45–47
project setup, 40–41
running, 43–45
transformation to requirements domain model, 244–251
transformation to XHTML, 251–258
OCL in, 35–38
requirements DSL, 47–49
scenario DSL, 50–51
doRun() method, 495
downloading DSL Toolkit, 20
DragDropListenerProvider extension-point, 436–438
DragDropListenerService, 436–438
DragTracker, 341
Draw2d, 318
connections and routing, 322–323
coordinate systems, 323–324
figures, 318–319
interaction sequence, 320
layout, 322
LightweightSystem, 318–319
painting, 320–321
text, 319
UpdateManager, 318
DSL Instances
Java DSL Instances, 24–25
mindmap and requirements DSL Instances, 23–24
scenario DSL Instances, 24–25
DSL Project Wizard, 40
DSL Toolkit
abstract elements, 17
BDM (Business Domain Modeling), 22
development workflow, 18–20
downloading, 20
Java DSL Instances, 24–25
mindmap and requirements DSL Instances, 23–24
Practitioner, 18–19
Practitioner’s view of sample projects, 25
REP (Requirements Elicitation Project), 21
RMP (Requirements Management Project), 21
RSP (Requirement Scenario Project), 22
scenario DSL Instances, 24–25
Toolsmith artifacts, 17–18
DSLs
business DSL, 51–53
creating, 29–31
definition of, 5
developing, 6
graphical notation. See graphical notation
mindmap DSL, 39–40
code generation, 43–45
creating, 41–42
generator model, creating, 42
OCL, adding, 45–47
project setup, 40–41
running, 43–45
transformation to requirements domain model, 244–251
transformation to XHTML, 251–258
object-oriented, 51
packaging and deployment, 303
artwork, 304–305
generation models, 310–311
requirements.product, 312
source deployment, 312–313
user interface plug-ins, 305–310
requirements DSL, 47–49
scenario DSL, 50–51
textual syntaxes
overview, 227–228
TCS (Textual Concrete Syntax), 229
Xtext, 228–229
dynamic instance models, 38–39, 262
dynamic templates, 65–66
Dynamic Templates property (Gen Editor Generator), 535
EAnnotations, 33
Eclipse Packaging Project (EPP), 20
Eclipse Requirements Project (ERP)
BDM (Business Domain Modeling), 22
REP (Requirements Elicitation Project), 21
RMP (Requirements Management Project), 21
RSP (Requirement Scenario Project), 22
edit providers, 486–489
Edit Source Folder dialog, 298
editing. See GEF (Graphical Editing Framework)
Editing Domain ID property (Gen Diagram), 538
EditingDomain, sharing, 123–126
EditorProvider extension-point, 427–428
editors, QVT OML editor, 240
EditorService, 427–428
editpartProvider extension-point, 382–385
EditParts (GEF), 325–326
AbstractEditPart, 325
adding to diagram, 334–336
connection EditParts, 330–331
creating, 326–329
deactivating, 336–337
definition, 473–475
DiagramRootEditPart, 326
GraphicalEditParts, 325
lifecycle, 334–337
ScalableFreeformRootEditPart, 326
TreeEditParts, 325
EditPartService, 382–385
EditPolicies, 333–334, 493–497
editpolicyProvider extension-point, 386–387
EditPolicyService, 385–387
element creation (GMF runtime), 459–461
element operations (OML)
allSubobjects(), 579
allSubobjectsOfKind(), 579
allSubobjectsOfType(), 579
clone(), 579
deepclone(), 580
_globalId(), 578
_localId(), 578
markedAs(), 580
markValue(), 580
metaClassName(), 578
stereotypedBy(), 580
stereotypedStrictlyBy(), 580
subobjects(), 578
subobjectsOfKind(), 579
subobjectsOfType(), 579
elements. See specific elements
ElementSelectionProvider extension-point, 429–430
ElementSelectionService, 428–430
elementTypeBindings extension-point, 449–451
elementTypes extension-point, 443–449
Ellipse, 509
EMF (Eclipse Modeling Framework)
code generation, 34–35
domain models, importing, 31
dynamic instances, 38–39
Ecore metamodel, 32–33
editor, integrating with
requirements diagram
refactoring editor, 127–130
sharing editing domain, 123–126
sharing file extension, 122–123
Model Compare, 11
Model Query, 11
Model Search, 11
Model Transaction, 10
Model Validation, 10
OCL in, 35–38
overview, 10
persistence alternatives, 11
runtime features, 33–34
EMOF (Essential MOF), 663
End Events, 152
endsWith() operation, 587
entry operations (mapping operations), 559–560
enumerationAttributes2columns() query, 602
EPP (Eclipse Packaging Project), 20
equalsIgnoreCase() operation, 589
ERP (Eclipse Requirements Project)
BDM (Business Domain Modeling), 22
REP (Requirements Elicitation Project),
RMP (Requirements Management Project), 21
RSP (Requirement Scenario Project), 22
ERROR statement (Xpand), 616
escape sequences, 594
Essential MOF (EMOF), 663
Event figures, creating for scenario diagram, 152–154
Event Mapping (scenario diagram), 164
execute() method, 378
executing transformations
assert expression, 576–577
log expression, 576
trace model, 575
transform() operation, 577
transformation composition, 577
execution semantics (mapping operations), 558–559
ExecutionStrategy, 376
exists() operation, 633
expand element, 646
EXPAND statement (Xpand), 608–612
exporting figures, 62
expression language (Xpand)
casting, 635
chain expression, 634–635
collect() operation, 631–632
collections, 630
create expression, 635
exists() operation, 633
forAll() operation, 632
let expression, 635
literals, 628–630
reject() operation, 631
select() operation, 630
sortBy() operation, 633
switch expression, 634
ternary expression, 634
typeSelect() operation, 631
expressions. See specific expressions
extending diagrams
custom decorator, 497–00500
custom EditPolicy, 493–497
custom style, 490–493
scenario diagram custom view and edit providers, 486–489
extends keyword, 553
extensibility mechanisms (GMF), 372–373. See also extension-points
Extensible Markup Language (XML), 664
extension keyword, 636
EXTENSION statement (Xpand), 613–614
extension-points
ActionFilterProvider, 424–426
clipboardSupport, 457–458
contributionItemProvider, 409–418
declaring, 373–375
decoratorProvider, 392–396
diagramEventBrokerProvider, 441–443
documentProviders, 453–455
DragDropListenerProvider, 436–438
EditorProvider, 427–428
editpartProvider, 382–385
editpolicyProvider, 386–387
ElementSelectionProvider, 429–430
elementTypeBindings, 449–451
elementTypes, 443–449
GlobalActionHandlerProvider, 420–423
GMF customization options, 65
IconProvider, 397–399
layoutProvider, 406–408
logListeners, 452–453
MarkerNavigationProvider, 400–401
modelingAssistantProvider, 404–406
overview, 373–375
paletteProvider, 388–392
ParserProvider, 402–403
Pathmaps, 459
perspectiveExtensions, 306
perspectives, 306
preferencePages, 306
propertiesConfiguration, 453
PropertiesProvider, 431–433
PropertyModifier, 434–435
renderedImageFactory, 456–457
TransferAdapterProvider extension-point, 439–441
viewProvider, 379–382
ExtensionMap element, 643
extensions (Xtend)
cached extensions, 639
extension invocation, 637–638
Java extensions, 639
private extensions, 639
Externalizer.xpt template, 216–218
extractor (TCS), 229
factories, 7–8
feature initialization, 527–528
feature properties, 625
Border Layout, 513
Compound Border, 510
Custom Border, 510
custom figures, 89–90
Ellipse, 509
figure properties, 507–508
Flow Layout, 511–512
Grid Layout, 513–515
Label, 510
Line Border, 510
Margin Border, 510
overview, 506–507
Polygon, 509
Polyline, 509
Polyline Connection, 509
Rectangle, 509
Rounded Rectangle, 509
Stack Layout, 512
subtopic figures, 84–89
TemplatePoint, 509
XY Layout, 512
figure plug-ins, 62
FigureDescriptor, 503
FigureRef, 504
figures, 318–319
Border Layout, 513
changing appearance based on preference changes, 546
changing dynamically, 546
changing properties of, 547
in color modeling diagram
annotation figure definition, 188–189
archetype figure definition, 182, 184
generalization link definition, 186–187
package figure definition, 185–186
Compound Border, 510
Custom Border, 510
Ellipse, 509
exporting, 62
Flow Layout, 511–512
Grid Layout, 513–515
Label, 510
Line Border, 510
making nonresizable, 547
Margin Border, 510
Polygon, 509
Polyline, 509
Polyline Connection, 509
properties
common properties, 507–508
Flow Layout figure properties, 511
shape figure properties, 508
Rectangle, 509
Rounded Rectangle, 509
in scenario diagram, 145–146
Connection figures, 155–158
Data Object figure, 158–159
Event figures, 152–154
Gateway figure, 149–152
Subprocess figure, 147–149
Task figure, 146–147
Stack Layout, 512
TemplatePoint, 509
viewing elements on diagrams, 547
XY Layout, 512
FigureUtilities class, 501
FILE statement (Xpand), 612
Fill property (shape figures), 508
fillGradient() method, 202
fillShape() method, 202
filters in graphical notations, 57–58
find() operation, 589
findFeature() method, 474
FIRST service execution strategy, 377
firstElementOnly element, 644
firstToUpper() operation, 586
fixed anchor locations, 94–96
Flow Layout, 511–512
Font property (figures), 508
Fontoura, Marcus, 56
forAll() operation, 632
Force Single Line property (Flow Layout figure), 511
forEach loop expression, 565
FOREACH statement (Xpand), 612–613
Foreground Color property (figures), 508
format() operation, 584
forOne loop expression, 565
FORWARD service execution strategy, 377
Frankel, David, 4
Gateway figure, creating for scenario diagram, 149–152
Gateway Mapping (scenario diagram), 163–164
GEF (Graphical Editing Framework)
Commands, 332
connection interactions
connection bend interactions, 351–352
connection creation interactions, 349–350
connection edit interactions, 350–351
creation interactions
connection creation interactions, 349–350
consuming CreateRequests, 345
creation sequence, 345–347
producing CreateRequests, 344
delete interactions, 342–343
dependencies, 318
editing support
Commands, 332
EditPolicies, 333–334
Requests, 331–332
EditParts, 325–326
AbstractEditPart, 325
adding to diagrams, 334–336
connection EditParts, 330–331
creating, 326–329
deactivating, 336–337
DiagramRootEditPart, 326
EditPartFactory, 326–327
GraphicalEditParts, 325
lifecycle, 334–337
ScalableFreeformRootEditPart, 326
TreeEditParts, 325
EditPolicies, 333–334
graphical view
ScrollingGraphicalViewer, 326
setting up, 327–328
Model-View-Controller (MVC)
architecture, 324–325
moving and resizing interactions, 347–349
overview, 317
palette, 337
Requests, 331–332
selection interactions
keyboard selection, 342
overview, 338–340
selection actions, 342
selection handles, 340–341
selection requests, 342
selection targeting and feedback, 341
Selection Tool, 339
selection with DragTracker, 341
tools, 337
Gen Application element, 543
Gen Diagram
Contains Shortcuts To property, 536
Creation Wizard Category ID property, 538
Editing Domain ID property, 538
Icon Path ID property, 538
Shortcuts Provided For property, 536
Synchronized property, 537
Units property, 537
Updater element, 542
Validation Decorators property, 537
Validation Enabled property, 537
Visual ID property, 538
Without Domain property, 538
Gen Editor Generator
Copyright Text property, 534
Diagram File Extension property, 534
Domain File Extension property, 535
Domain Gen Model property, 535
Dynamic Templates property, 535
Model ID property, 535
Package Name Prefix property, 535
Same File for Diagram and Model property, 535–536
Template Directory property, 535
Gen Editor View element, 540–541
Gen Link, 539
Gen Navigator element, 541–542
Gen Plugin element, 540
generalization link definition (color modeling diagram), 186–187
Generalization Mapping (color modeling diagram), 200–201
generalizations2columns() query, 600
Generate as Eclipse Editor property (Gen Editor View), 541
Generate Domain Model Navigator property (Gen Navigator), 541
generating
color modeling diagram, 201
CSV files, 281–282
HTML with templates (M2T project), 297–301
Java files
with DNC model with templates, 291–297
with Java model and dedicated template, 283–291
requirements diagram, 113
scenario diagram
border item adjustment, 166–167
figures plug-in generation, 168–171
GMF generator model, 166
intermediate event outline, 167–168
generation models, 310–311
Generative Modeling Technologies (GMT), 15
generator model, 64
Custom Behavior, 539
Gen Application, 543
Gen Diagram
Contains Shortcuts To property, 536
Creation Wizard Category ID property, 538
Editing Domain ID property, 538
Icon Path property, 538
Shortcuts Provided For property, 536
Synchronized property, 537
Units property, 537
Validation Decorators property, 537
Visual ID property, 538
Without Domain property, 538
Gen Diagram Updater, 542
Gen Editor Generator
Copyright Text property, 534
Diagram File Extension property, 534
Domain File Extension property, 535
Domain Gen Model property, 535
Dynamic Templates property, 535
Model ID property, 535
Package Name Prefix property, 535
Same File for Diagram and Model property, 535–536
Template Directory property, 535
Gen Editor View, 540–541
Gen Link, 539
Gen Navigator, 541–542
Gen Plugin, 540
mindmap diagram example, 74–76
mindmap generator model, 42
Open Diagram Behavior, 539
overview, 533–534
Property Sheet, 542–543
requirements generator model, 48–49
getActionBarContributor() method, 136
getCommand() method, 332
getContributorId() method, 134
getDecoratorTargetNode() method, 498–500
getDragSourceListener() method, 435
getDropTargetListener() method, 435
getModelChildren() method, 326
getModelSourceConnections() method, 330
getModelTargetConnections() method, 330
getNodeEditPartClass() method, 475, 488
getNotationView() method, 382
getParseCommand() method, 224
getParser() method, 224
getPreferenceColor() method, 211
getPropertySheetPage() method, 134
getReferencedElementEClass() method, 475
getSemanticCommand() method, 482
getSemanticEClass() method, 472
getSourceConnectionAnchor() method, 330
getStrCounter() operation, 592
getTargetConnectionAnchor() method, 330
getTargetEditPart() method, 332
GlobalActionHandlerProvider extension-point, 420–423
GlobalActionHandlerService, 419–423
_globalId() operation, 578
GMF (Graphical Modeling Framework) runtime, 12, 55, 59. See also GMF Tooling
advantages of, 545
canonical containers, 547
color modeling diagram, 181–182
annotation figure definition, 188–189
archetype figure definition, 182–184
color preferences, 205–220
custom parsers, 220–225
generalization link definition, 186–187
generation, 201
gradient figures, 201–205
mapping definition, 190–201
package figure definition, 185–186
tooling definition, 189
command infrastructure, 462–464
contributing to, 546
customization options
code modification, 65
decorator models, 66
dynamic templates, 65–66
extension-points, 65
model extensions, 66
dashboard view, 66–67
diagram creation
compared to generated diagrams, 485–486
connections, 479–484
diagram editor, 467–468
domain model, 468–469
EditPart definition, 473–475
New Diagram Wizard, 475–476
palette definition, 470–471
properties view, configuring, 476–479
view definition, 471–473
diagram extension
custom decorator, 497–500
custom EditPolicy, 493–497
custom style, 490–493
scenario diagram custom view and edit providers, 486–489
diagram structure
connection handles, 364–365
context menus, 363–364
Diagram menu, 361
Order menu, 361
Outline view, 366
Palette view, 360
pop-up bars, 365
preferences, 367–368
properties, 356–359
toolbar elements, 354–356
View menu, 361–363
editor, integrating with requirements diagram
refactoring editor, 127–130
sharing editing domain, 123–126
sharing file extension, 122–123
element creation, 459–461
extension-points
ActionFilterProvider, 424–426
clipboardSupport, 457–458
contributionItemProvider, 409–418
declaring, 373–375
decoratorProvider, 392, 394–396
diagramEventBrokerProvider, 441–443
documentProviders, 453–455
DragDropListenerProvider, 436–438
EditorProvider, 427–428
editpartProvider, 382–385
editpolicyProvider, 386–387
ElementSelectionProvider, 429–430
elementTypeBindings, 449–451
GlobalActionHandlerProvider, 420–423
IconProvider, 397–399
layoutProvider, 406–408
logListeners, 452–453
MarkerNavigationProvider, 400–401
modelingAssistantProvider, 404–406
overview, 373–375
paletteProvider, 388–392
ParserProvider, 402–403
Pathmaps, 459
propertiesConfiguration, 453
PropertiesProvider, 431–433
PropertyModifier, 434–435
renderedImageFactory, 456–457
TransferAdapterProvider, 439, 441
viewProvider, 379–382
extensibility mechanisms, 372–373
figures
changing appearance based on preference changes, 546
changing dynamically, 546
changing properties of, 547
making nonresizable, 547
viewing elements on diagrams, 547
key bindings
connection navigation, 657–658
cycling between diagram editor and palette, 653–654
diagram navigation, 655
palette item navigation, 654
Properties View navigation, 658–659
shape navigation, 655–656
mindmap diagram improvements
audits and metrics, 97–103
custom figures, 89–90
custom layout, 82–84
fixed anchor locations, 94–96
graphical definition model, 76–79
mapping definition model, 80–81
preferences settings, 97
subtopic actions, 90–93
subtopic figures, 84–89
tooling definition model, 79
topic figure layout, 81–82
nodes, sticking to border of parent, 548
notation model, 369–372
online resources, 545
overview, 353–354
prerequisites, 546
requirements diagram
Creation Wizard, 137–138
diagram definition, 104–107
domain model, 108
EMF and GMF editor integration, 122–130
generation, 113
mapping definition, 107–113
menus and toolbar, 135–137
navigator extension, 139
Outline view, 139–140
properties, 140–145
Properties view, 134–135
selection handling, 130–134
tooling definition, 107
ToolTips, 114–121
runtime component, 60–61
scenario diagram
Data Object Mapping, 165
database persistence, 177–181
diagram partitioning, 171–177
Event Mapping, 164
figures plug-in generation, 168–171
Gateway Mapping, 163–164
generation, 166–168
graphical definition, 145–159
Link Mapping, 165
mapping definition, 161
Task Mapping, 161–163
tooling definition, 159–161
services
ActionFilterService, 423–426
ContributionItemService, 408–418
DecorationService, 392, 394–396
DiagramEventBrokerService, 441–443
DragDropListenerService, 435–438
EditorService, 427–428
EditPartService, 382–385
EditPolicyService, 385–387
ElementSelectionService, 428–430
GlobalActionHandlerService, 419–423
IconService, 396–399
LayoutService, 406–408
MarkerNavigationService, 399–401
ModelingAssistantService, 403–406
overview, 375–376
PaletteService, 387–392
ParserService, 401–403
PropertiesModifierService, 433–435
PropertiesService, 430–433
Service class, 376
service execution strategies, 376–377
TransferAdapterService, 438–441
ViewService, 378–382
templates, modifying output of, 547
tooling component, 61–62
FAQs, 547–548
graphical definition model, 61–63, 68–69, 76–79
mapping model, 63–64, 70–74, 80–81
tooling definition model, 63, 69, 79
Xpand, 548
GMF (Graphical Modeling Framework) Tooling. See also GMF runtime
generator model
Custom Behavior, 539
Gen Application, 543
Gen Diagram, 536–538
Gen Diagram Updater, 542
Gen Editor Generator, 534–536
Gen Editor View, 540–541
Gen Link, 539
Gen Navigator, 541–542
Gen Plugin, 540
Open Diagram Behavior, 539
overview, 533–534
Property Sheet, 542–543
graphical definition model
Canvas, 505–506
diagram elements, 516–518
Figure Gallery. See Figure Gallery
figures, 504
overview, 503
mapping model
audits and metrics, 532–533
Canvas Mapping, 520
feature initialization, 527–528
Link Mapping, 529–532
Node Mapping, 522–526
overview, 519–520
side-affixed nodes (pins and ports), 528–529
Top Node Reference, 521–522
tooling definition model, 518–519
GMT (Generative Modeling Technologies), 15
gotoMarker() method, 399
Grab Excess Horizontal Space property (Grid Layout figure), 514
Grab Excess Vertical Space property (Grid Layout figure), 514
Gradient (diagram elements), 516
gradient figures, 201–205
graphical concrete syntax, 4
graphical definition model, 61–63
Canvas, 505–506
diagram elements
Compartment, 518
Connection, 517
Diagram Label, 517
Node, 516–517
overview, 516
Figure Gallery, 504
Border Layout, 513
Compound Border, 510
Custom Border, 510
Ellipse, 509
figure properties, 507–508
Flow Layout, 511–512
Grid Layout, 513–515
Label, 510
Line Border, 510
Margin Border, 510
overview, 506–507
Polygon, 509
Polyline, 509
Polyline Connection, 509
Rectangle, 509
Rounded Rectangle, 509
Stack Layout, 512
TemplatePoint, 509
XY Layout, 512
figures, 504
mindmap diagram example, 68–69, 76–79
overview, 503
of scenario diagram, 145–146
Connection figure, 155–158
Data Object figure, 158–159
Event figures, 152–154
Gateway figure, 149–152
Subprocess figure, 147–149
Task figure, 146–147
Graphical Editing Framework. See GEF
Graphical Modeling Framework. See GMF runtime; GMF Tooling
graphical notations. See also GMF (Graphical Modeling Framework)
design recommendations, 56–57
filters/layers, 57–58
layout, 58
links in, 58
selecting, 55
shortcuts in, 59
synchronization with domain models, 59
graphical view (GEF)
ScrollingGraphicalViewer, 326
setting up, 327–328
GraphicalEditParts (GEF), 325
GraphicalNodeEditPolicy, 350–351
GraphicalViewerKeyHandler, 342
gratuitous graphics, avoiding, 56
Grid Layout, 513–515
Group Icon property (Gen Navigator Child Reference), 542
Group Name property (Gen Navigator Child Reference), 542
guillemets (≪ ≫), 606
handleActivate() method, 131
handleContentOutlineSelection() method, 132–133
handleNotificationEvent() method, 547
hasPersistentClasses() query, 599
Height command (Diagram menu), 361
helper operations (OML), 562–563
Hide Connector Labels toolbar element, 356
Hide If Empty property (Gen Navigator Child Reference), 542
Horizontal Alignment property (Grid Layout figure), 514
Horizontal Indent property (Grid Layout figure), 514
Horizontal Span property (Grid Layout figure), 514
HTML, generating with templates (M2T project), 297–301
HUNT (Human-Usable Textual Notation), 665
Icon Path property
Gen Diagram, 538
Gen Editor View, 540
IconProvider extension-point, 397–399
IconService, 396–399
ID property
Gen Editor View, 541
Gen Plugin, 540
IDiagramWorkbenchPart interface, 137
IDragDropListenerProvider interface, 435
IF statement (Xpand), 614–615
IGlobalActionHandler interface, 419
IGlobalActionHandlerContext interface, 419
IGraphicEditPart interface, 382
IIconProvider interface, 396
IMM (Information Management Metamodel), 14
imperative iterate expressions (OML), 566–567
imperative operations (OML), 565–566
forEach loop expression, 565
forOne loop expression, 565
switch expression, 566
while loop expression, 565–566
importing
domain models, 31
XSD, 252–253
in-place transformations, 553
incrStrCounter() operation, 593
indexOf() operation, 586
Information Management Metamodel (IMM), 14
inheritance in mapping operations, 560–561
inherits keyword, 560–561
initArchetypeDefaults() method, 209, 219
initializeDataStore() method, 179
initializeDefaultPreferences() method, 209
initializeEditingDomain() method, 123
initPreferenceStoreListener() method, 211
injector (TCS), 229
inline graphics, 57
insertAt() operation, 583
Insets property (figures), 508
installEditPolicy() method, 335
instance models, 4
instances, 4
integer operations, 621–622
interactions (GEF)
connection bend interactions, 351–352
connection creation interactions, 349–350
connection edit interactions, 350–351
creation interactions, 344
consuming CreateRequests, 345
creation sequence, 345–347
producing CreateRequests, 344
delete interactions, 342–343
moving and resizing interactions, 347–349
overview, 338
selection interactions
keyboard selection, 342
overview, 338–340
selection actions, 342
selection handles, 340–341
selection requests, 342
selection targeting and feedback, 341
Selection Tool, 339
selection with DragTracker, 341
interfaces
IDiagramWorkbenchPart, 137
IDragDropListenerProvider, 435
IGlobalActionHandler, 419
IGlobalActionHandlerContext, 419
IGraphicEditPart, 382
IIconProvider, 396
IOperation, 378
IParser, 401
IPropertiesProvider, 430
IProvider, 376
ISemanticParser, 224
intermediate elements, 554
Intermediate Events, 152
inv prefix, 573
invoking
extensions, 637–638
Java, 648
mappings, 570–571
IOperation interface, 378
IParser interface, 401
IPropertiesProvider interface, 430
IProvider interface, 376
ISemanticParser interface, 224
isPrimitive() query, 601
isQuoted() operation, 590
iterator properties, 627
Java
business domain model transformations to, 264–276
DSL Instances, 24–25
extensions (Xtend), 639
files, generating
with DNC model with templates, 291–297
with Java model and dedicated template, 283–291
JEM (Java EMF Model), 265
JETs (Java Emitter Templates), 34, 665
invocation, 648
Java Modeling in Color with UML (Coad, et al), 22, 57
JavaBeautifier, 296
JEM (Java EMF Model), 265
jemUtil.ext file, 283–286
JETs (Java Emitter Templates), 34, 665
joinfields() operation, 583
key bindings (GMF)
connection navigation, 657–658
cycling between diagram editor and palette, 653–654
diagram navigation, 655
palette item navigation, 654
Properties View navigation, 658–659
shape navigation, 655–656
keyboard selection (GEF), 342
keyboard shortcuts, adding to elements, 90–93
keywords. See specific keywords
Label Offset (diagram elements), 516
labels, 510
Diagram Label, 517
Label Offset (diagram elements), 516
Lanza, Michele, 57
LAST service execution strategy, 377
lastToUpper() operation, 586
late operator, 574–575
launch configurations
arguments, 43
in OML, 240–242
layers in graphical notations, 57–58
LayoutEditPolicy, 345
layoutProvider extension-point, 406–408
layouts
Border Layout, 513
combining, 515
custom layout, 82–84
with Draw2d, 322
Flow Layout, 511–512
of graphical notations, 58
Grid Layout, 513–515
Stack Layout, 512
of topic figures, 81–82
XY Layout, 512
LayoutService, 406–408
libraries. See Stdlib
lifecycle of EditParts, 334–337
LightweightSystem (Draw2d), 318–319
Line Border, 510
Line Kind property (shape figures), 508
Line Width property (shape figures), 508
Link Mapping, 529–532
Link Mapping (scenario diagram), 165
links in graphical notations, 58
lists, 624
lite runtime (GMF), 60–61
Literal Strings, 594
literals (Xpand), 628–630
Load Resource dialog, 188
_localId() operation, 578
Location property (figures), 508
log expression, 576
logListeners extension-point, 452–453
loops
forEach loop expression, 565
forOne loop expression, 565
while loop expression, 565–566
M2M (Model-to-Model Transformation), 12–13
M2T (Model-to-Text Transformation) project
CSV files, generating, 281–282
HTML, generating, 297–301
Java files, generating with DNC model with templates, 291–297
dncUtil.ext file, 295
Entity bean template, 291–294
workflow file, 296
Java files, generating with Java model and dedicated template, 283–291
Address type output, 287–288
jemUtil.ext file, 283–286
Person class, 289–290
Phone class, 290–291
workflow, 286–287
overview, 277
Xpand, 278–281
Xtend, 278–281
main keyword, 559
Major Alignment property (Flow Layout figure), 511
Major Spacing property (Flow Layout figure), 511
map keyword, 570
mapping definition
Aggregation Link Mapping, 198–200
Annotation Mapping, 195
DNC Association Mapping, 195–197
DNC Canvas Mapping, 190
Generalization Mapping, 200–201
Moment-Interval Archetype Mapping, 191–192
Package Mapping, 194
requirements diagram mapping definition, 107–113
Canvas mapping, 108
Requirement link mappings, 112
Requirement node mapping, 111–112
RequirementGroup link mapping, 110
RequirementGroup node mapping, 109–110
Requirements Dependency link mappings, 113
Role Archetype Mapping, 193
of scenario diagram
Data Object Mapping, 165
Event Mapping, 164
Gateway Mapping, 163–164
Link Mapping, 165
Task Mapping, 161–163
mapping model, 63–64
audits and metrics, 532–533
Canvas Mapping, 520
feature initialization, 527–528
Link Mapping, 529–532
mindmap diagram example, 70–74, 80–81
Node Mapping, 522–524
containment, 524
node constraints, 526
phantom nodes, 524–526
references, 524
overview, 519–520
side-affixed nodes (pins and ports), 528–529
Top Node Reference, 521–522
mapping operations (OML). See also transformations
BPMN and BPEL, 231
disjunction, 562
entry operations, 559–560
execution semantics, 558–559
inheritance, 560–561
invoking mappings, 570–571
mapping body, 558
merger, 561
return statement, 559
syntax, 556–558
Margin Border, 510
Marinescu, Radu, 57
markedAs() operation, 580
MarkerNavigationProvider extension-point, 400–401
MarkerNavigationService, 399–401
markValue() operation, 580
Match Minor Size property (Flow Layout figure), 511
match() operation, 589
matchBoolean() operation, 590
matchFloat() operation, 591
matchIdentifier() operation, 591
matchInteger() operation, 591
MatchSizeAction, 349
Maximum Size property (figures), 508
MDA (Model-Driven Architecture)
implemented standards
Business Process Modeling Notation, 665
Diagram Interchange, 664
Extensible Markup Language, 664
Human-Usable Textual Notation, 665
Meta-Object Facility, 662–663
MOF Models to Text Transformation Language, 664
Object Constraint Language, 663
overview, 662
Query/View/Transformation, 664
Software Process Engineering Metamodel, 666
Unified Modeling Language, 663
overview, 661–662
working relationship
implementations influencing specifications, 668
membership, 666–667
open and transparent nature, 668–669
specification compliance, 668
specification delivery, 667–668
MDSD (Model-Driven Software Development)
metamodels, 3–4
overview, 7
MDTs. See Model Development Tools
menuAboutToShow() method, 136
menus
adding to elements, 90–93
requirements diagram, 135–137
merges keyword, 561
merging
in mapping operations, 561
models, 237
Messages class, 209
messages.properties file, 210
Meta-Object Facility (MOF), 662–663
metaClassName() operation, 578
metaModel element, 646
Metamodel Explorer view, 240–241
metamodels, 3–4, 32–33. See also domain models
methods. See specific methods
metrics for mindmap diagram, 97–103
migration of models, 233–237
mindmap and requirements DSL Instances, 23–24
mindmap domain model, 39–40
code generation, 43–45
creating, 41–42
generator model for, 74–76
generator model, creating, 42
graphical definition model for, 68–69, 76–79
improvements to
audits and metrics, 97–103
custom figures, 89–90
custom layout, 82–84
fixed anchor locations, 94–96
graphical definition model, 76–79
mapping definition model, 80–81
preferences settings, 97
subtopic actions, 90–93
subtopic figures, 84–89
tooling definition model, 79
topic figure layout, 81–82
mapping model for, 70–74, 80–81
OCL, adding, 45–47
project setup, 40–41
running, 43–45
tooling definition model for, 69, 79
transformations
to requirements domain model, 244–251
to XHTML, 251–258
mindmap2csv.mwe file, 282
mindmap2csv.xpt template, 281
mindmap2requirements transformation, 308–309
Minimum Size property (figures), 508
Minor Alignment property (Flow Layout figure), 511
Minor Spacing property (Flow Layout figure), 511
Model Compare (EMF), 11
Model Development Tools (MDT), 662
BPMN2, 14
IMM (Information Management Metamodel), 14
OCL (Object Constraint Language), 14
UML2, 13
UML2 Tools, 14
XSD (XML Schema), 13
Model Driven Architecture: Applying MDA to Enterprise Computing (Frankel), 4
Model-Driven Architecture. See MDA
Model-Driven Software Development. See MDSD
model extensions, 66
Model ID property (Gen Editor Generator), 535
model merge, 237
model migration, 233–237
model operations (OML)
add(), 582
asList(), 583
asTransformation(), 582
copy(), 582
createEmptyModel(), 582
insertAt(), 583
joinfields(), 583
objects(), 581
objectsOfType(), 581
prepend(), 582
removeElement(), 581
rootObjects(), 581
Model Query (EMF), 11
model refactoring, 232–233
Model Search (EMF), 11
Model Transaction (EMF), 10
model transformations. See transformations
Model Validation (EMF), 10
Model-to-Model Transformation (M2M), 12–13
Model-to-Text Transformation project. See M2T project
Model-View-Controller (MVC) architecture, 324–325
model2RDBModel() mapping, 598
Modeling Amalgamation Project, 15
modeling, overview of, 3–5
modelingAssistantProvider extension-point, 404–406
ModelingAssistantService, 403–406
models. See specific models
modelSlot element, 644
modeltype declaration, 550–553
MOF (Meta-Object Facility), 662–663
MOF2Text, 664
Moment-Interval Archetype Mapping (color modeling diagram), 191–192
monitor size for graphical notations, 56
moving and resizing interactions (GEF), 347–349
MultiPageSelectionProvider, 130–131
MVC (Model-View-Controller) architecture, 324–325
Name Compartment Onl toolbar element, 356
Name property (figures), 508
navigation
connection navigation, 657–658
diagram navigation, 655
palette item navigation, 654
Properties View navigation, 658–659
shape navigation, 655–656
Navigator Child Reference property (Gen Navigator), 541–542
navigator extension (requirements diagram), 139
New Diagram Wizard, 475–476
NodeEditPart.xpt template file, 212, 215–216
Nodes, 516–517
node constraints, 526
containment, 524
node constraints, 526
phantom nodes, 524–526
references, 524
sticking to border of parent, 548
nonresizable figures, creating, 547
NonResizeableEditPolicy, 547
normalizeSpace() operation, 588
notation model, 369–372
notations. See graphical notations
null in transformation declarations, 556
number type operations (OML), 583
Object Constraint Language (OCL), 14, 663
object keyword, 568
object operations (OML), 578
object-oriented DSLs, 51
Object-Oriented Metrics in Practice (Lanza and Marinescu), 57
objects. See also specific objects
creating, 568–570
operations, 620
populating, 568–570
objects() operation, 581
objectsOfType() operation, 581
Oblique Style Routing toolbar element, 355
OCL (Object Constraint Language), 14, 663
adding to mindmap domain model, 45–47
in EMF, 35–38
OML and, 243
testing, 35
OMG
MDA (Model-Driven Architecture). See MDA
working relationship
implementations influencing specifications, 668
membership, 666–667
open and transparent nature, 668–669
specification compliance, 668
specification delivery, 667–668
OML (Operational Mapping Language)
Ant tasks and, 243–244
comments, 593
described, 238
element operations, 580
helper operations, 562–563
imperative iterate expressions, 566–567
imperative operations, 565–566
forEach loop expression, 565
forOne loop expression, 565
switch expression, 566
while loop expression, 565–566
launch configurations, 240–242
libraries, 556
mapping invocation, 570–571
mapping operations
disjunction, 562
entry operations, 559–560
execution semantics, 558–559
inheritance, 560–561
mapping body, 558
merger, 561
return statement, 559
syntax, 556–558
Metamodel Explorer view, 240–241
model operations, 580
object creation and population, 568–570
OCL statements and, 243
OCL synonyms, 596
operations and iterators
collect() operation, 564
select() operation, 563
overview, 550
QVT OML editor, 240
QVT Operational Project wizard, 238–239
resolution operators
inv prefix, 573
late, 574–575
resolve, 571–572
resolveIn, 573
resolveone, 573
resolveoneIn, 573
shorthand, 594–595
Std library
add() operation, 582
addSuffixNumber() operation, 593
allSubobjects() operation, 579
allSubobjectsOfKind() operation, 579
allSubobjectsOfType() operation, 579
asBoolean() operation, 591
asFloat() operation, 592
asInteger() operation, 592
asList() operation, 583
asOrderedTuple() operation, 578
asTransformation() operation, 582
clone() operation, 579
copy() operation, 582
createEmptyModel() operation, 582
deepclone() operation, 580
endsWith() operation, 587
equalsIgnoreCase() operation, 589
find() operation, 589
firstToUpper() operation, 586
format() operation, 584
getStrCounter() operation, 592
_globalId() operation, 578
incrStrCounter() operation, 593
indexOf() operation, 586
insertAt() operation, 583
isQuoted() operation, 590
joinfields() operation, 583
lastToUpper() operation, 586
_localId() operation, 578
markedAs() operation, 580
markValue() operation, 580
match() operation, 589
matchBoolean() operation, 590
matchFloat() operation, 591
matchIdentifier() operation, 591
matchInteger() operation, 591
metaClassName() operation, 578
normalizeSpace() operation, 588
objects() operation, 581
objectsOfType() operation, 581
prepend() operation, 582
quotify() operation, 590
range() operation, 583
removeElement() operation, 581
replace() operation, 588
repr() operation, 578
restartAllStrCounter() operation, 593
rfind() operation, 589
rootObjects() operation, 581
size() operation, 584
startStrCounter() operation, 592
startsWith() operation, 587
stereotypedBy() operation, 580
stereotypedStrictlyBy() operation, 580
subobjects() operation, 578
subobjectsOfKind() operation, 579
subobjectsOfType() operation, 579
substringAfter() operation, 585
substringBefore() operation, 584
toLower() operation, 585
toString() operation, 583
toUpper() operation, 585
trim() operation, 587
unquotify() operation, 590
strings, 594
trace model, 242–243
transformation declarations
access keyword, 553
configuration properties, 555
extends keyword, 553
in-place transformations, 553
intermediate elements, 554
modeltype declaration, 550–553
null, 556
predefined variables, 555
renaming elements, 555
transformation execution
assert expression, 576–577
log expression, 576
trace model, 575
transform() operation, 577
transformation composition, 577
UML to RDB Transformation Project, 596–603
associationAttributes2columns() mapping, 604
class2columns() query, 600
dataType2columns() query, 600
dataType2primaryKeyColumns() mapping, 603
enumerationAttributes2columns() query, 602
generalizations2columns() query, 600
hasPersistentClasses() query, 599
isPrimitive() query, 601
model2RDBModel() mapping, 598
package2schema() query, 599
package2schemas() mapping, 598
persistentClass2table() query, 599
primitiveAttributes2columns() query, 601
relationshipAttribute2foreignKey() mapping, 603
relationshipAttributes2columns() query, 602
transformation declaration, 597
open and transparent nature, 668–669
Open Diagram Behavior element, 539
Operational Mapping Language. See OML
OperationParserProvider class, 224–225
operations (OML). See specific operations
operators
inv prefix, 573
late, 574–575
resolve, 571–572
resolveIn, 573
resolveone, 573
resolveoneIn, 573
Order menu commands, 361
org.eclipse.gmf.runtime.draw2d.render plug-ins, 501
org.eclipse.gmf.runtime.gef.ui plug-in, 502
outlet element, 646
Outline property (shape figures), 508
Outline view (diagrams), 139–140, 366
outlineShape() method, 167
overwriting user code modifications, avoiding, 35
package figure definition (color modeling diagram), 185–186
Package Mapping (color modeling diagram), 194
Package Name Prefix property (Gen Editor Generator), 535
Package Selection dialog, 116
package2schema() query, 599
package2schemas() query, 598
packaging DSLs, 303
artwork, 304–305
generation models, 310–311
requirements.product, 312
source deployment, 312–313
user interface plug-ins, 305
actions, 307–310
preferences, 306–307
wizard and perspective, 305–306
paint() method, 320
paintBorder() method, 321
paintChildren() method, 321
paintClientArea() method, 320
paintFigure() method, 320
painting with Draw2d, 320–321
palette
cycling between diagram editor and palette, 653–654
definition, 470–471
GEF (Graphical Editing Framework) palette, 337
palette item navigation, 654
Palette view (diagrams), 360
paletteProvider extension-point, 388–392
PaletteService, 387–392
ParserProvider extension-point, 402–403
ParserService, 401–403
partitioning. See diagram partitioning
PasteTemplateAction, 345
Pathmaps extension-point, 459
performFinish() method, 137–138
performRequest() method, 333
persistence
database persistence, 177–181
persistence alternatives (EMF), 11
persistentClass2table() query, 599
Person class, 289–290
perspectiveExtensions extension-point, 306
perspectives extension-point, 306
phantom nodes, 524–526
Phone class, 290–291
platformUri element, 642
Plug-in Project wizard, 305–306
plug-ins, developing
actions, 307–310
preferences, 306–307
wizard and perspective, 305–306
policies. See specific policies
Polygon, 509
Polyline, 509
polymorphism, Xpand support for, 610–612
pop-up bars (diagrams), 365
populating objects, 568–570
postprocessor element, 646–647
Practitioner (DSL Toolkit), 18–19
predefined variables, 555
preference page templates (color modeling diagram), 216–220
PreferenceInitializer.xpt template, 219
preferencePages extension-point, 306
PreferencePropertyChangeListener class, 211, 214
preferences
diagrams, 367–368
mindmap diagram improvements, 97
user interface plug-ins, 306–307
Preferred Size property (figures), 508
prepend() operation, 582
primitiveAttributes2columns() query, 601
Printing Enabled property (Gen Plugin), 540
private extensions (Xtend), 639
product line engineering, 7–8
project interaction, 15–16
project setup, mindmap DSL, 40–41
properties
of diagrams
Appearance properties, 358–359
Core properties, 358
Rulers & Grid properties, 356–358
of figures
common properties, 507–508
Flow Layout figure properties, 511
shape figure properties, 508
of Gen Diagram
Contains Shortcuts To property, 536
Creation Wizard Category ID property, 538
Editing Domain ID property, 538
Icon Path property, 538
Shortcuts Provided For property, 536
Synchronized property, 537
Units property, 537
Validation Decorators property, 537
Validation Enabled property, 537
Visual ID property, 538
Without Domain property, 538
of Gen Editor Generator
Copyright Text, 534
Diagram File Extension, 534
Domain File Extension, 535
Domain Gen Model, 535
Dynamic Templates, 535
Model ID, 535
Package Name Prefix, 535
Same File for Diagram and Model, 535–536
Template Directory, 535
of Gen Editor View
Generate as Eclipse Editor, 541
Icon Path, 540
ID, 541
of Gen Navigator
Generate Domain Model Navigator, 541
Navigator Child Reference, 541–542
of Gen Plugin
ID, 540
Printing Enabled, 540
Provider, 540
Required Plugin Identifiers, 540
Version, 540
of requirements diagram, 140–145
Custom Property Tab, 140
Property tab, 144
RequirementDescriptionPropertySection class, 142–143
of workflow configuration files, 641
transformation configuration properties, 555
Properties View, 134–135, 476–479, 658–659
propertiesConfiguration extension-point, 453
PropertiesModifierService, 433–435
PropertiesProvider extension-point, 431–433
PropertiesService, 430–433
property operations, 626
Property Sheet element, 542–543
Property tab (requirements diagram), 144
PropertyModifier extension-point, 434–435
PROTECT statement (Xpand), 615
Provider property (Gen Plugin), 540
ProviderPriority, 376
provides() method, 224, 376, 498
Query/View/Transformation. See QVT
quotify() operation, 590
QVT (Query/View/Transformation), 664. See also transformations
Core language, 549
OML (Operational Mapping Language). See OML
Operational Project wizard, 238–239
Relations language, 549
QVTO scripts, 307
range() operation, 583
RDBMS, UML to RDB Transformation Project, 596–603
associationAttributes2columns() mapping, 604
class2columns() query, 600
dataType2columns() query, 600
dataType2primaryKeyColumns() mapping, 603
enumerationAttributes2columns() query, 602
generalizations2columns() query, 600
hasPersistentClasses() query, 599
isPrimitive() query, 601
model2RDBModel() mapping, 598
package2schema() query, 599
package2schemas() mapping, 598
persistentClass2table() query, 599
primitiveAttributes2columns() query, 601
relationshipAttribute2foreignKey() mapping, 603
relationshipAttributes2columns() query, 602
transformation declaration, 597
Reader (Xpand), 644
real operations, 622
Rectangle, 509
Rectilinear Style Routing toolbar element, 355
recursion (Xtend), 638–639
refactoring editors, 127–130
refactoring models, 232–233
Reference Type property (Gen Navigator Child Reference), 542
refines keyword, 554
refreshChildren() method, 335
refreshVisuals() method, 329–331, 335
RegisterEcoreFile element, 643
RegisterGeneratedEPackage element, 642–643
reject() operation, 631
Relations language (QVT), 231, 549
relationship link mapping (mindmap diagram), 73–74, 77–80
relationshipAttribute2foreignKey() mapping, 603
relationshipAttributes2columns() query, 602
relative coordinates (Draw2d), 323–324
REM statement (Xpand), 616
removeChild() method, 335–336
removeElement() operation, 581
renaming elements, 555
*.render.awt plug-ins, 501
renderedImageFactory extension-point, 456–457
REP (Requirements Elicitation Project), 21
replace() operation, 588
repr() operation, 578
Requests (GEF), 331–332
CreateRequests
consuming, 345
producing, 344
selection requests, 342
Required Plugin Identifiers property (Gen Plugin), 540
Requirement link mappings (requirements diagram), 112
Requirement node mapping (requirements diagram), 111–112
Requirement Scenario Project (RSP), 22
RequirementDescriptionPropertySection class, 142–143
RequirementGroup link mapping (requirements diagram), 110
RequirementGroup node mapping (requirements diagram), 109–110
Requirements Dependency link mappings (requirements diagram), 113
requirements diagram
Creation Wizard, 137–138
diagram definition, 104–107
domain model, 108
EMF and GMF editor integration
refactoring editor, 127–130
sharing editing domain, 123–126
sharing file extension, 122–123
generation, 113
mapping definition, 107–113
Canvas mapping, 108
Requirement link mappings, 112
Requirement node mapping, 111–112
RequirementGroup link mapping, 110
RequirementGroup node mapping, 109–110
Requirements Dependency link mappings, 113
menus and toolbar, 135–137
navigator extension, 139
Outline view, 139–140
partition, 172–177
properties, 140–145
Custom Property Tab, 140
Property tab, 144
RequirementDescriptionPropertySection class, 142–143
Properties view, 134–135
selection handling, 130–134
tooling definition, 107
ToolTips, 114–121
requirements domain model, 47–48
generator model, creating, 48–49
transformations from mindmap domain model, 244–251
Requirements Elicitation Project (REP), 21
Requirements Management Project (RMP), 21
requirements.product, configuring, 312
RequirementsEditorPart class, 127–128
RequirementsGeneralPreferencePage class, 307
ResizableEditPolicy, 348
resizing interactions (GEF), 347–349
resolution operators (OML)
inv prefix, 573
late, 574–575
resolve, 571–572
resolveIn, 573
resolveone, 573
resolveoneIn, 573
resolve operator, 571–572
resolveIn operator, 573
resolveone operator, 573
resolveoneIn operator, 573
resolveSemanticElement() method, 382
resources, GMF (Graphical Modeling Framework) resources, 545
restartAllStrCounter() operation, 593
result keyword, 569
return statement, 559
revalidate() method, 322
REVERSE service execution strategy, 377
rfind() operation, 589
RMP (Requirements Management Project), 21
Role Archetype Mapping (color modeling diagram), 193
roles of EditPolicies, 333
rootObjects() method, 560, 581
Rounded Rectangle, 509
routing in Draw2d, 322–323
RSP (Requirement Scenario Project), 22
Rulers & Grid properties (diagrams), 356–358
running mindmap domain model, 43–45
runtime, EMF, 33–34
runtime, GMF. See GMF runtime
Same File for Diagram and Model property (Gen Editor Generator), 535–536
Sample Reflective Ecore Model Editor, 39
ScalableFreeformRootEditPart (GEF), 326
scenario diagram, 145
custom view, 486–489
Data Object Mapping, 165
database persistence, 177–181
diagram partitioning
Requirements diagram partition, 172–177
subprocess partitions, 171–172
Event Mapping, 164
Gateway Mapping, 163–164
generation
border item adjustment, 166–167
figures plug-in generation, 168–171
GMF generator model, 166
intermediate event outline, 167–168
graphical definition, 145–146
Connection figures, 155–158
Data Object figure, 158–159
Event figures, 152–154
Gateway figure, 149–152
Subprocess figure, 147–149
Task figure, 146–147
Link Mapping, 165
mapping definition, 161
Task Mapping, 161–163
tooling definition, 159–161
transformations to test cases, 258–264
scenario domain model, 50–51
scenario DSL Instances, 24–25
ScenarioEditPartProvider class, 488
scripts, QVTO scripts, 307
ScrollingGraphicalViewer (GEF), 326
Select All Links toolbar element, 355
Select All Shapes toolbar element, 355
Select All toolbar element, 355
SelectAllAction, 342
selecting graphical notations, 55
selection handling (requirements diagram), 130–134
selection interactions (GEF)
keyboard selection, 342
overview, 338–340
selection actions, 342
selection handles, 340–341
selection requests, 342
selection targeting and feedback, 341
Selection Tool, 339
selection with DragTracker, 341
Selection Tool (GEF), 339
selectionProvider attribute (MultiPageSelectionProvider), 130–131
SelectionTreeEditorPart class, 128
Send Backward command (Order menu), 361
Send to Back command (Order menu), 361
serialization syntax, 4
Service class, 376
services
ActionFilterService, 423–426
ContributionItemService, 408–418
DecorationService, 392–396
DiagramEventBrokerService, 441–443
DragDropListenerService, 435–438
EditorService, 427–428
EditPartService, 382–385
EditPolicyService, 385–387
ElementSelectionService, 428–430
GlobalActionHandlerService, 419–423
IconService, 396–399
LayoutService, 406–408
MarkerNavigationService, 399–401
ModelingAssistantService, 403–406
overview, 375–376
PaletteService, 387–392
ParserService, 401–403
PropertiesModifierService, 433–435
PropertiesService, 430–433
Service class, 376
service execution strategies, 376–377
TransferAdapterService, 438–441
ViewService, 378–382
setContents() method, 327, 334
setCurrentViewer() method, 131
setForegroundColor() method, 205, 211
setModel() method, 334
setParent() method, 334
setupContentPane() method, 517
shape figures
Ellipse, 509
Polygon, 509
Polyline, 509
Polyline Connection, 509
properties, 508
Rectangle, 509
Rounded Rectangle, 509
TemplatePoint, 509
shape navigation, 655–656
SharedImages class, 396
sharing EditingDomain, 123–126
shortcuts in graphical notations, 59
Shortcuts Provided For property (Gen Diagram), 536
shorthand (QVT), 594–595
Show Connector Labels toolbar element, 356
side-affixed nodes (pins and ports), 528–529
simplicity in graphical notations, 56
Size property (figures), 508
size() operation, 584
software factories, 7–8
Software Process Engineering Metamodel (SPEM), 666
software product lines, 7–8
sortBy() operation, 633
source, deploying, 312–313
specifications
compliance, 668
implementations influencing specifications, 668
specification delivery, 667–668
SPEM (Software Process Engineering Metamodel), 666
Stack Layout, 512
StandaloneSetup class
ExtensionMap element, 643
platformUri element, 642
RegisterEcoreFile element, 643
RegisterGeneratedEPackage element, 642–643
uriMap element, 642
Start Events, 152
startStrCounter() operation, 592
startsWith() operation, 587
startup() method, 378
statements. See specific statements
StaticProperty operations, 626
StdLib library, 556
add() operation, 582
addSuffixNumber() operation, 593
allSubobjects() operation, 579
allSubobjectsOfKind() operation, 579
allSubobjectsOfType() operation, 579
asBoolean() operation, 591
asFloat() operation, 592
asInteger() operation, 592
asList() operation, 583
asOrderedTuple() operation, 578
asTransformation() operation, 582
clone() operation, 579
copy() operation, 582
createEmptyModel() operation, 582
deepclone() operation, 580
element operations, 580
endsWith() operation, 587
equalsIgnoreCase() operation, 589
find() operation, 589
firstToUpper() operation, 586
format() operation, 584
getStrCounter() operation, 592
_globalId() operation, 578
incrStrCounter() operation, 593
indexOf() operation, 586
insertAt() operation, 583
isQuoted() operation, 590
joinfields() operation, 583
lastToUpper() operation, 586
_localId() operation, 578
markedAs() operation, 580
markValue() operation, 580
match() operation, 589
matchBoolean() operation, 590
matchFloat() operation, 591
matchIdentifier() operation, 591
matchInteger() operation, 591
metaClassName() operation, 578
normalizeSpace() operation, 588
objects() operation, 581
objectsOfType() operation, 581
prepend() operation, 582
quotify() operation, 590
range() operation, 583
removeElement() operation, 581
replace() operation, 588
repr() operation, 578
restartAllStrCounter() operation, 593
rfind() operation, 589
rootObjects() operation, 581
size() operation, 584
startStrCounter() operation, 592
startsWith() operation, 587
stereotypedBy() operation, 580
stereotypedStrictlyBy() operation, 580
subobjects() operation, 578
subobjectsOfKind() operation, 579
subobjectsOfType() operation, 579
substringAfter() operation, 585
substringBefore() operation, 584
toLower() operation, 585
toString() operation, 583
toUpper() operation, 585
trim() operation, 587
unquotify() operation, 590
stereotypedBy() operation, 580
stereotypedStrictlyBy() operation, 580
StoreController class, 179
string operations (OML), 594, 620
addSuffixNumber(), 593
asBoolean(), 591
asFloat(), 592
asInteger(), 592
endsWith(), 587
equalsIgnoreCase(), 589
find(), 589
firstToUpper(), 586
format(), 584
getStrCounter(), 592
incrStrCounter(), 593
indexOf(), 586
isQuoted(), 590
lastToUpper(), 586
match(), 589
matchBoolean(), 590
matchFloat(), 591
matchIdentifier(), 591
matchInteger(), 591
normalizeSpace(), 588
quotify(), 590
replace(), 588
restartAllStrCounter(), 593
rfind(), 589
size(), 584
startStrCounter(), 592
startsWith(), 587
substringAfter(), 585
substringBefore(), 584
toLower(), 585
toUpper(), 585
trim(), 587
unquotify(), 590
styles, custom, 490–493
subobjects() operation, 578
subobjectsOfKind() operation, 579
subobjectsOfType() operation, 579
Subprocess figure, creating for scenario diagram, 147–149
subprocess partitions, 171–172
substringAfter() operation, 585
subtopic actions, mindmap diagram improvements, 90–93
subtopic figures, mindmap diagram improvements, 84–89
subtopic link mapping (mindmap diagram), 73
Synchronized property (Gen Diagram), 537
synchronizing domain models, 59, 76
synonyms (OCL), 596
Task figure, creating for scenario diagram, 146–147
Task Mapping (scenario diagram), 161–163
TCS (Textual Concrete Syntax), 4, 229
Template Directory property (Gen Editor Generator), 535
TemplatePoint, 509
templates
dynamic templates, 65–66
mindmap2csv.xpt, 281
modifying output of, 547
TemplateTransferDragSourceListener, 344
Teneo, 177–180
ternary expression, 634
Test and Performance Tools Project (TPTP), 258–264
test cases, transforming scenarios to, 258–264
testing OCL, 35
text
Draw2d support for, 319
with inline graphics, 57
Textual Concrete Syntax (TCS), 4, 229
Textual Generic Editor (TGE), 229
Textual Modeling Framework (TMF), 12, 665
textual syntaxes for DSLs
overview, 227–228
TCS (Textual Concrete Syntax), 4, 229
Xtext, 228–229
TGE (Textual Generic Editor), 229
Tiger project, 233
TMF (Textual Modeling Framework), 12, 665
toLower() operation, 585
toolbars
elements, 354–356
requirements diagram, 135–137
tooling component (GMF), 61–62
FAQs, 547–548
graphical definition model, 61–63, 68–69, 76–79
mapping model, 63–64, 70–74, 80–81
tooling definition model, 63, 69, 79
tooling definition, 63, 518–519
of color modeling diagram, 189
of mindmap diagram example, 69, 79
of scenario diagram, 159–161
of requirements diagram, 107
tools, GEF (Graphical Editing Framework) tools, 337
Toolsmith artifacts (DSL Toolkit), 17–18
ToolTips, 114–121
Top Node Reference, 521–522
topic figure layout, 81–82
topic mapping (mindmap diagram), 72
TopicEditPart class., 475
toPreferenceConstant() function, 213–214
toRequirementsModel() method, 559
toStateful() method, 561
toString() operation, 583
toUpper() operation, 585
TPTP (Test and Performance Tools Project), 258–264
TransactionalEditingDomain, 123–130
TransferAdapterProvider extension-point, 439–441
TransferAdapterService, 438–441
transform() operation, 577
transformations
business domain models to Java, 264–276
executing
assert expression, 576–577
log expression, 576
trace model, 575
transform() operation, 577
transformation composition, 577
implementation techniques, 231–232
M2M (Model-to-Model Transformation), 12–13
M2T (Model-to-Text Transformation) project
CSV fies, generating, 281–282
HTML, generating, 297–301
Java files, generating with DNC model with templates, 291–297
Java files, generating with Java model and dedicated template, 283–291
overview, 277
Xpand, 278–281
Xtend, 278–281
mindmap domain model
to requirements domain model, 244–251
to XHTML, 251–258
mindmap2requirements, 308–309
for model merge, 237
for model migration, 233–237
for model refactoring, 232–233
OML transformation declarations
access keyword, 553
configuration properties, 555
extends keyword, 553
in-place transformations, 553
intermediate elements, 554
modeltype declaration, 550–553
null, 556
predefined variables, 555
renaming elements, 555
scenario diagrams to test cases, 258–264
transformation composition, 577
transparent nature, 668–669
Tree Style Routing toolbar element, 355
TreeContainerEditPolicy, 345
TreeEditParts (GEF), 325
trim() operation, 587
Tufte, Edward, 56
types
API documentation
AdviceContent operations, 627
AdviceContent properties, 626
Boolean operations, 622
collection operations, 623–624
collection properties, 623
definition operations, 627
definition properties, 627
feature properties, 625
integer operations, 621–622
iterator properties, 627
list operations, 624
object operations, 620
object properties, 619
operation operations, 626
property operations, 626
real operations, 622
StaticProperty operations, 626
string operations, 620
string properties, 620
type operations, 625
type properties, 624
type inference (Xtend), 638
type operations, 625
type properties, 624
typeSelect() operation, 631
UML (Unified Modeling Language), 663
UML to RDB Transformation Project, 596–603
associationAttributes2columns() mapping, 604
class2columns() query, 600
dataType2columns() query, 600
dataType2primaryKeyColumns() mapping, 603
enumerationAttributes2columns() query, 602
generalizations2columns() query, 600
hasPersistentClasses() query, 599
isPrimitive() query, 601
model2RDBModel() mapping, 598
package2schema() query, 599
package2schemas() mapping, 598
persistentClass2table() query, 599
primitiveAttributes2columns() query, 601
relationshipAttribute2foreignKey() mapping, 603
relationshipAttributes2columns() query, 602
transformation declaration, 597
UML2, 13
UML2 Tools, 14
The UML Profile for Framework Architectures (Fontoura, et al), 56
umlPrimitive2rdbPrimitive() method, 568
UmlRdbUtil library, 556
UmlUtil library, 556
Unified Modeling Language (UML), 663
Units property (Gen Diagram), 537
unquotify() operation, 590
updateArchetypeColor() method, 211
UpdateManager (Draw2d), 318
updating model versions, 233–237
uri element, 644
uriMap element, 642
user code modifications, avoiding overwriting, 35
user interaction sequence (Draw2d), 320
user interface plug-ins, developing actions, 307–310
preferences, 306–307
wizard and perspective, 305–306
validate() method, 322
validation, 38
Validation Decorators property (Gen Diagram), 537
Validation Enabled property (Gen Diagram), 537
variables, predefined, 555
Version property (Gen Plugin), 540
versions of models, updating, 233–237
Vertical Alignment property (Grid Layout figure), 514
Vertical property (Flow Layout figure), 511
Vertical Span property (Grid Layout figure), 514
View menu commands, 361–363
viewing Ecore models, 39
viewProvider extension-point, 379–382
views
definition, 471–473
scenario diagram custom view, 486–489
ViewService, 378–382
Visual Facets (diagram elements), 516
Visual ID property (Gen Diagram), 538
while loop expression, 565–566
Width command (Diagram menu), 361
Without Domain property (Gen Diagram), 538
wizards
Creation Wizard, 137–138
New Diagram Wizard, 475–476
Plug-in Project wizard, 305–306
workflow engine (Xpand), 641
Ant, 649
aspects, 647–648
EMF setup
ExtensionMap element, 643
platformUri element, 642
RegisterEcoreFile element, 643
RegisterGeneratedEPackage element, 642–643
uriMap element, 642
Java invocation, 648
properties, 641
Reader, 644
Xpand component, 644–647
expand element, 646
metaModel element, 646
outlet element, 646
postprocessor element, 646–647
xcollect imperative iterate expression, 566
XHTML, transforming mindmap domain model to, 251–258
xmap keyword, 570
XML (Extensible Markup Language), 664
XML Schema (XSD), 13
XOR Fill property (shape figures), 509
XOR Outline property (shape figures), 509
Xpand, 665
AROUND statement, 617–619
DEFINE statement, 607–608
ERROR statement, 616
EXPAND statement, 608–612
expression language, 628
casting, 635
chain expression, 634–635
collect() operation, 631–632
collections, 630
create expression, 635
exists() operation, 633
forAll() operation, 632
let expression, 635
literals, 628–630
reject() operation, 631
select() operation, 630
sortBy() operation, 633
switch expression, 634
ternary expression, 634
typeSelect() operation, 631
EXTENSION statement, 613–614
FILE statement, 612
FOREACH statement, 612–613
in GMF (Graphical Modeling Framework), 548
IF statement, 614–615
IMPORT statement, 606
LET statement, 615–616
M2T (Model-to-Text Transformation) project, 278–281
overview, 605–606
polymorphism support, 610–612
PROTECT statement, 615
REM statement, 616
type system, 619–627
workflow engine
Ant, 649
aspects, 647–648
EMF setup, 642–643
Java invocation, 648
properties, 641
Reader, 644
Xpand component, 644–647
Xtend
cached extensions, 639
comments, 637
examples, 640–641
extension invocation, 637–638
extension keyword, 636
extensions, 637
import keyword, 636
Java extensions, 639
overview, 636
private extensions, 639
recursion, 638–639
type inference, 638
Xpand component, 644–647
expand element, 646
metaModel element, 646
outlet element, 646
postprocessor element, 646–647
Xtend
cached extensions, 639
comments, 637
examples, 640–641
extension invocation, 637–638
extension keyword, 636
extensions, 637
import keyword, 636
Java extensions, 639
M2T (Model-to-Text Transformation) project, 278–281
overview, 636
private extensions, 639
recursion, 638–639
type inference, 638
Xtext, 228–229
XY Layout, 512
Zoom toolbar element, 356
3.145.119.199