package $FIELD(Package); $LOOP(ClassImport) import $FIELD(ClassImport); $ENDLOOP() /** * Diese Klasse stellt eine Implementierung des Modells {@linkplain $FIELD(ModelName)} * dar. Dieses benoetigt $FIELD(ResourceCount) Ressourcen, welche durch den * {@linkplain $FIELD(ModelCMName)} spezifiziert werden: *
    $LOOP(Resources) *
  1. $FIELD(ResourceDesc) ({@code $FIELD(ResourceVar)}): * @todo Detaillierte Ressoucen-Beschreibung einfuegen *
  2. $ENDLOOP() *
* @see $FIELD(ModelCMName) * @author automatisch generiert durch {@link edu.bonn.xulu.plugin.appl.GeoModelCodeGenerator} * @version 1.0 */ public class $FIELD(ModelName) extends $FIELD(ModelSuperClass) { /** Speichert den ContentManager fuer das Modell. * @see $FIELD(ModelCMName) */ protected $FIELD(ModelCMName) contManager; //********** Lese/Schreibrechte, die fuer den gesamten *********** //********** Modellanlauf gehalten werden muessen *********** $LOOP(PropertyResources) private $FIELD(ResourceAccessType) $FIELD(ResourceAccessVar) = null; // $FIELD(PropertyResourceDesc) $ENDLOOP() //**************** Variablen mit denen gearbeitet wird ******************* $LOOP(Resources) private $FIELD(ResourceVarType) $FIELD(ResourceVar) = null; // $FIELD(ResourceDesc) $ENDLOOP() /** * Erzeugt eine neue Instanz des Modells. */ public $FIELD(ModelName)() { super( new $FIELD(ModelCMName)() ); contManager = ($FIELD(ModelCMName))super.contManager; } //////////////////////////////////////////////////////////////////////// /////////////// Implementierung von AbstractXuluModel ////////////// //////////////////////////////////////////////////////////////////////// /** * Initialisiert das Model, indem die Ressourcen aus dem ContentManager * geladen werden und mit Lese/Schreib-Rechten versehen werden. Zudem * werden Referenzen auf die Ressourcen in lokalen Variablen * gespeichert, um waehrend des Modellablaufs effizienter darauf zugreifen * zu koennen. */ public void performModelInit() { if ( contManager == null ) return; // Zugriffsrechte aus Ressourcen/Propertys holen $LOOP(PropertyResources) $FIELD(ResourceAccessVar) = null; if ( contManager.getResource($FIELD(PropertyResourceNo)).getData() != null ) $FIELD(ResourceAccessVar) = (($FIELD(PropertyResourceType))contManager.getResource($FIELD(PropertyResourceNo)).getData())$FIELD(ResourceAccessAlloc); $ENDLOOP() // Variablen belegen mit denen gearbeitet wird $LOOP(Resources) $FIELD(ResourceVar) = $FIELD(ResourceVarAlloc); $ENDLOOP() // WICHTIG: // An dieser Stelle die Anzahl an Modellschritten (aus einer // Ressource) zuweisen, die das Modell laufen soll! // Sonst laeuft das Modell nicht an!! this.stepCount = 0; } /** * Gibt die Lese/Schreibrechte auf das Ein- und Ausgaberaster wieder frei. * Interne Ressourcen brauchen keine aus dem Speicher entfernt werden. */ public void performModelDispose() { // Ressourcen wieder freigeben $LOOP(PropertyResources) releaseAccess($FIELD(ResourceAccessVar)); $ENDLOOP() } /** * Fuehrt einen Schritt des Modellablaufs durch. * @param stepNo zu modellierender Schritt (beginnend bei 1!) */ public void performModelStep(int stepNo) { // @todo An dieser Stelle den Ablauf eines Modellschritts implementieren // Ueber die Variable 'statusOut' koennen Status-Ausgaben im // Modellfenster ausgegeben werden. } }