It is also worthwhile noting that in some cases, relationships and even roles
may have their own subgenerators. An example of this was in the Watch Application
models in Chapter 9: the typing of actions was via the relationship type, and the
details of the action were contained in the relationship or its roles. For instance, a
Roll relationship connected to a Time Variable, and a Boolean property of the
relationship speci?¬?ed whether the action incremented or decremented the value of
theVariable. Similarly, a Set relationship could connect to the same TimeVariable and,
say, an object representing the systemtime: thiswould set thevalue of theVariable to be
the current system time. Since the types of the objects involved in both cases were the
same, and the type of the relationship was what determined the semantics of the action,
it made sense in this case to have a generator per relationship type.
11.4.5 Parallel Generators per Programming Language
The preceding types of generator cover the output of a full working application,
containing all the information from the models, marshaled into the required ?¬?les and
formats for the given platform, domain framework, and compiler. In some cases, even
this is not enough: we may want to be able to generate the same application in more
than one way. The most common need for this is where we want to generate the same
application for more than one platform.
Pages:
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565