de.grogra.xl.property
Interface RuntimeModel

All Known Implementing Classes:
PropertyRuntime, PropertyRuntimeModel, RuntimeModel

public interface RuntimeModel

This RuntimeModel is used by the XL run-time system as an interface to the access of properties. It corresponds to a compile-time model which was used at compile-time: The invocation of CompiletimeModel.getRuntimeName() returns a name, which is passed to RuntimeModelFactory.modelForName(java.lang.String, java.lang.ClassLoader) in order to obtain the corresponding RuntimeModel.

A comprehensive specification of the behaviour of RuntimeModel is given by the specification of the XL programming language.

Author:
Ole Kniemeyer

Nested Class Summary
static interface RuntimeModel.Property
           
 
Method Summary
 void initialize(java.lang.String params)
          Initializes this model.
 RuntimeModel.Property propertyForName(java.lang.String name, java.lang.ClassLoader loader)
           
 RuntimeModel.Property propertyForName(java.lang.String name, TypeLoader loader)
          Returns the run-time Property for a given name.
 

Method Detail

initialize

void initialize(java.lang.String params)
Initializes this model. This method is invoked by RuntimeModelFactory.modelForName(java.lang.String, java.lang.ClassLoader) after a new Model instance has been created. The format of params depends on implementations of Model.

Parameters:
params - initialization parameters, possibly null

propertyForName

RuntimeModel.Property propertyForName(java.lang.String name,
                                      java.lang.ClassLoader loader)

propertyForName

RuntimeModel.Property propertyForName(java.lang.String name,
                                      TypeLoader loader)
Returns the run-time Property for a given name. The name has to be a name which was returned by an invocation of CompiletimeModel.Property.getRuntimeName() for a compile-time property at compile-time. The implementation has to return the corresponding run-time property. If classes have to be loaded, the loader has to be used.

Parameters:
name - the name of the property, as returned by the compile-time property
loader - a loader for loading of classes
Returns:
the run-time property corresponding to name