A run-time model is used by the run-time system of the XL programming language. It describes the properties of relational data sources at run-time, i.e., it provides methods for obtaining information and performing operations on relational data sources.
A run-time model is represented by an instance of the interface
de.grogra.xl.runtime.Model, together with
instances of de.grogra.xl.runtime.Extent
and de.grogra.xl.runtime.Property which
are returned by methods of Model.
While a Model provides methods for obtaining
information and performing operations which are common to a set of
relational data sources with an equal structure, an
Extent provides methods which operate
on a single instance of these data sources. E.g., a
Model could represent
features of XML documents in general, while an
Extent of this model represents a single
XML document. Property instances represent
properties at run-time.
The exact meaning of these classes and interfaces will be described in the
sequel in the context of their usage.
The instance of Model that is responsible
for a specific part of a programme is determined as follows:
At compile-time, a compile-time model
is associated with that specific part. The invocation of the method
getRuntimeName on this compile-time model
returns a name, this name m is used
at run-time in order to obtain the corresponding instance of
de.grogra.xl.runtime.Model: If
c is the class-loader of the
class containing the specific part, then the run-time model is
obtained by the invocation
ModelFactory.getInstance().modelForName(
m, c).
The current Extent for a run-time model
r is obtained by the invocation
r.getCurrentExtent().
If the current extent is to be determined and this method
returns null, a
NoCurrentExtentException is thrown.
The current QueueCollection of an extent
e is obtained by the invocation
e.getQueues(x), where x
is the current extended state (Chapter 4, Extended State of the Virtual Machine).
If the current queue collection is to be determined and this method
returns null, a
NoActiveTransformationException is thrown.
The current queue collection of a run-time model is determined by
first determining the current extent of the run-time model and then
determining its current queue-collection.