Information Technology Reference
In-Depth Information
and extending oAW. In the following subsections, we introduce
oAW, the type system and the expression language used by
the Xtend and Xpand languages, and the Xtend language
itself. Given that, the Xpand language uses the same type
system,the expression language,and the general facilities that
Xtend uses. In this section, we do not include a particular
description of Xpand. For details, please refer to the oAW
manual reference [OAW 09].
oAW provides support for Aspect-Oriented Modeling (AOM)
and AOP in the context of MDE. In section 3.6.4, we
will illustrate how AOP is integrated into MDE. This
characteristic is specially useful to create SPLs using the MDE
principles [VÖL 05, GRO 08, VÖL 07a, VÖL 07b], and it is
one of the main reasons why we had selected oAW as the
implementation framework for our approach.
The oAW type system. In the oAW generator framework,
every object (e.g. metaconcepts, model elements, values, etc.)
has a type. Every type has a simple name (e.g. String) and
an optional namespace used to distinguish between two types
with the same name. Thus, a fully qualified name looks like
this: my::fully::qualified::typeName .
The type system provides access to built-in types such
as String , Object , Collection , List ,or Set . Each type
contains properties and operations. For instance, the String
type has a library, which is especially important for code
generation. The type system supports the '+' operator
for concatenation, the usual java.lang.String operations
and some special operations such as toFirstUpper() and
toFirstLower() .
The type system is also extensible, allowing for accessing
types corresponding to models or metamodels created by MDE
developers. For example, an MDE developer can register the
class metamodel from Figure 3.2 in the type system and then
have access to the types Package , Class , and Attribute .
Search WWH ::




Custom Search