|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface CompiletimeModel
A CompileModel
is used by an XL compiler to
parametrize the access to graph-like data sources in queries.
This mechanism allows XL to be used for a variety of
data sources, e.g., trees, graphs or hypergraphs. Implementations
have to provide a suitable mapping of the specific structure
of the data source in order to define an easy-to-use model.
A CompiletimeModel
defines the specificity of a
data source at compile-time. This has to be accompanied by an implementation
of a RuntimeModel
that is used at run-time.
The correct run-time model instance is obtained by invocations of
RuntimeModelFactory.modelForName(java.lang.String, java.lang.ClassLoader)
with the name
returned by getRuntimeName()
as parameter.
A comprehensive specification of the behaviour of Model
is given by the specification of the XL programming language.
Method Summary | |
---|---|
Type<?> |
getEdgeType()
Specifies the type of standard edges. |
Type<?> |
getEdgeTypeFor(Type<?> type)
Specifies the compile-time type of edges for a given type. |
Type<?> |
getNodeType()
Specifies the base type of nodes of this model. |
Type<? extends Producer> |
getProducerType()
Returns the type of producers for right-hand sides of rules for this model. |
Type<? extends QueryState> |
getQueryStateType()
Returns the type of query states to be used for queries for this model. |
java.lang.String |
getRuntimeName()
Defines the name of the corresponding RuntimeModel . |
java.io.Serializable |
getStandardEdgeFor(int edge)
Returns a constant value representing a standard edge. |
Type<?> |
getWrapperTypeFor(Type<?> type)
Return the type of wrappers for values of the given type. |
CompiletimeModel.Property |
getWrapProperty(Type<?> wrapperType)
Returns the unwrapping property of a wrapper type. |
boolean |
needsWrapperFor(Type<?> type)
Determines whether a value of the given type has to be wrapped before it is added as a node to a Graph . |
Method Detail |
---|
Type<?> getEdgeType()
getStandardEdgeFor(int)
.
Type<?> getEdgeTypeFor(Type<?> type)
type
should be cast before it is interpreted as
an edge expression.
type
- the type of the expression
Type<?> getNodeType()
Type<? extends Producer> getProducerType()
Type<? extends QueryState> getQueryStateType()
java.lang.String getRuntimeName()
RuntimeModel
. This name
is used during run-time in invocations of
RuntimeModelFactory.modelForName(java.lang.String, java.lang.ClassLoader)
in order to obtain the RuntimeModel
suitable for the code that is compiled within this compile-time model.
java.io.Serializable getStandardEdgeFor(int edge)
edge
(EdgePattern.ANY_EDGE
,
EdgePattern.BRANCH_EDGE
,
EdgePattern.SUCCESSOR_EDGE
or
EdgePattern.REFINEMENT_EDGE
) for this
model. It is used as argument to constructor invocations of
EdgePattern
. Primitive values have to
be wrapped as usual.
edge
- int
-value encoding a standard edge
Type<?> getWrapperTypeFor(Type<?> type)
needsWrapperFor(de.grogra.reflect.Type>)
returns true
.
type
- a value type
CompiletimeModel.Property getWrapProperty(Type<?> wrapperType)
wrapperType
is the type of a wrapper. If there
is a property declared in this type which can be used to obtain
the wrapped argument, this property is returned, otherwise
null
.
wrapperType
- the type of a wrapper
boolean needsWrapperFor(Type<?> type)
Graph
.
type
- a value type
true
iff a wrapper is needed for type
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |