> Inhalt: JavaScout-Fat-Client-Framework (JS-FCF) 

Tutorial:Programmierung mit dem JS-FCF 

Tutorial:
JavaScout ProjectAssist, Task-Frame Grundlagen (Java_Fatclient_01) –
General BO-Set Klasse für eine Liste mit 'ProjectLanguage' Business-Objects

* Bitte beachten Sie die Hinweise und Bestimmungen bezüglich Urheberrecht, Haftungsausschluß und geschützte Marken oder Warenzeichen die für dieses Web-Dokument und möglicherweise auch für 'verlinkte' Dokumente gelten.

  • Der Betreiber dieser Web-Site (www.javascout.biz) ist nicht verantwortlich für den Inhalt von Web-Sites, die innerhalb dieses Web-Dokumentes oder anderer Dokumente von www.javascout.biz verlinkt sind.

  • Wenn dieses Web-Dokument oder andere Dokumente dieser Web-Site (www.javascout.biz) Rechte von Ihnen verletzen, oder sie glauben, daß Rechte Anderer (Dritter Personen) dadurch verletzt werden, informieren Sie bitte den Betreiber dieser Web-Site.
    Eine E-Mail können Sie ganz einfach durch anklicken des Symbols oder Textes im Frame rechts oben senden.

Dieses Dokument drucken.

 Letzte Bearbeitung dieses  Dokuments:
2008-05-22


Voraussetzungen für das Verständnis dieses Dokuments:

Grundkenntnisse in der Programmierung von Java (Klassen, Methoden, Schleifen).

Ungefährer Zeitbedarf zum Durcharbeiten dieses Dokuments:

Arbeitszeit:
Ca. 15 bis 40 Minuten; abhängig von der bei den vorigen Beispielen erworbenen Routine
.

In diesem Dokument wird die Generelle Klasse für eine Liste mit Business-Object (BO) der Klasse 'ProjectLanguage' implementiert.
Diese Klasse und die Variationen für die Server-Seite und die Client-Seite werden verwendet wenn für die Selektion von BO Kriterien verwendet werden, die mehrere BO als zutreffend auswählen könnten.

Einen Überblick über die verschiedenen Klassen zur Verwaltung von persistenten Daten finden Sie im Dokument Business-Object – Überblick über die Funktion zum Abfragen und Speichern von Daten.

Einen Überblick über die Aufteilung der Daten und Funktionalitäten eines BO in verschiedene Klassen finden Sie im Dokument Business-Object – Realisierung mit Java-Klassen.
Eine detailliertere Beschreibung der Aufgabe einer Generellen BO-Klasse finden Sie im Dokument
Business-Object – General Class (Generelle Klasse).

Inhaltsverzeichnis:

Voriger Schritt: DataBase-Access Klasse für eine Liste von Datensätzen aus der DB-Tabelle 'ProjLang' (DBA-Set) 

Vorbemerkung 
Vorbedingungen 
Generelle BO-Set-Klasse eröffnen 
Code für die Generelle BO-Set-Klasse 
* Von Basisklasse erben 
* Importieren der Bibliotheken 
* Methode zum Kopieren der Werte eines Objektes der gleichen Klasse 
Gesamter Code am Ende des Schrittes 
* Klasse
JS_ProjAssist_ProjectLangugae_BO_Set 
Weitere Schritte und verwandte Dokumentation 

Nächster Schritt: Server-Side BO-Set Klasse für eine Liste mit 'ProjectLanguage' Business-Objects 

Vorbemerkung

Obwohl Eclipse in 'deutscher Version' installiert werden kann, sind die Abbildungen in diesem Dokument mit der 'english Version' erstellt.
Grund ist, daß zum Zeitpunkt der Erstellung dieses Dokumentes (Oktober 2007) die Eclipse-Texte nur sehr unvollständig ins Deutsche übersetzt sind.
Damit ist (meiner Meinung nach)
1.) Eclipse in deutscher Version wesentlich schwerer verständlich als in englischer Version und
2.) wenn Eclipse weiter übersetzt wird, ist dieses Dokument stark abweichend von den dann vorhandenen deutschen Texten.


Für die 'Massenproduktion' von Generellen Klassen für BO-Set wurde ein Muster-Code entwickelt, aus dem durch Ersetzen von 'Platzhaltern' einfach und vor allem schnell bedarfsgerechte BO-Klassen implementiert werden können.
Der Muster-Code und die Anleitungen zur Adaption sind im Dokument
Muster-Code für ein BO-Set (Liste mit Business-Objects) beschrieben.
Der in diesem Tutorial vorgestellte Code folgt der Struktur des Muster-Codes – dadurch wird das Verstehen und Adaptieren leichter.

zum Inhaltsverzeichnis

Vorbedingungen:

zum Inhaltsverzeichnis

Generelle BO-Set-Klasse eröffnen

Diese Klasse wird gleichen Java-Package erstellt wie die generelle BO-Klasse.

Das Erstellen einer neuen Klasse wurde bereits mehrmals im Detail und mit Abbildungen beschrieben.
Aus diesem Grund wird er Vorgang nur mehr in Stichworten beschrieben.
Wenn sie unsicher sind, nehmen Sie bitte die ausführliche Anleitung unter
JavaScout ProjectAssist, Task-Frame Grundlagen (Java_Fatclient_01) – DataBase-Access (DBA) Klasse für DB-Tabelle 'ProjLang' > DBA-Klasse eröffnen als Richtlinie.

zum Inhaltsverzeichnis

Code für die Generelle BO-Set-Klasse

Der Code für die Generelle BO-Set-Klasse beschränkt sich auf das Kopieren von Daten und benutzt dazu weitestgehend die Funktionalität der Klasse JS_ProjAssist_ProjectLanguage_BO so wie im Dokument JavaScout ProjectAssist, Task-Frame Grundlagen (Java_Fatclient_01) – General BO (Business-Object) Klasse für 'ProjectLanguage' > Code für die GenerelleBO-Klasse beschrieben.

Der gesamte Code ist unter Klasse JS_ProjAssist_ProjectLanguage_BO_Set gelistet und mit Kommentaren versehen.
Aus diesem Grund wird anschließend der Code nicht mehr im Gesamten wiederholt sondern nur mehr Erläuterungen gegeben.

zum Inhaltsverzeichnis

Von Basisklasse erben

package js_projassist.bo;
/*
 * Package mit der Basisklasse für ein BO-Set. */

import js_base.bo.JSBS_BO_Set;
. . . . . . . .
. . . . . . . .

/* */
public class JS_ProjAssist_ProjectLanguage_BO_Set extends JSBS_BO_Set {

In der Basisklasse JSBS_BO_Set ist jene Variable des Typs 'Vector' definiert, in dem die selektierten Datensätze (für diese Klasse vom Typ 'JS_ProjAssist_ProjectLanguage_BO') nach dem Abschluß einer Methode enthalten sind.
Mit den obigen Anweisungen wird die Bibliothek, in der diese Klasse enthalten ist, importiert und von dieser Klasse 'geerbt'.

zum Inhaltsverzeichnis

Importieren der Bibliotheken

package js_projassist.bo;
/*
 * Package mit der Basisklasse für ein BO-Set. */

import js_base.bo.JSBS_BO_Set;
/*
 * Package mit der BO-Klasse, dessen Objekte in der Liste dieser Klasse enthalten sind. */

import js_projassist.bo.JS_ProjAssist_ProjectLanguage_BO;
/* */
public class JS_ProjAssist_ProjectLanguage_BO_Set extends JSBS_BO_Set {
/*

Neben der Bibliotheken mit der geerbten Basisklasse ist nur die Bibliothek mit der zugehörigen Generellen BO-Klasse erforderlich.

zum Inhaltsverzeichnis

Methode zum Kopieren der Werte eines Objektes der gleichen Klasse

Diese Methode wird insbesondere dann benötigt, wenn die Daten zwischen 'Client-Side' und 'Server-Side' übertragen werden müssen.
In dieser Methode wird für jedes BO in der zu kopierenden Liste (implementiert als Java-Typ 'Vector') ein neues Objekt 'konstruiert', dann die Methode der zugehörenden Generell BO-Klasse zum Kopieren aufgerufen und das neue BO in die Liste (Java-Typ 'Vector') eingefügt.

Zuerst wird festgestellt, wie viele BO in der Liste des als Parameter übergebenen Objektes (von der gleichen Klasse) enthalten sind.
Gleich anschließend wird auch eine Variable für den Index zum 'Adressieren' der Objekte innerhalb der Liste definiert.
/*
 * METHODEN */

/* ---------------------
 * METHODE zum Kopieren der Liste mit den BO eines anderen Objekts dieser Klasse
 * in diese Klasse. */

    
public void copyFromJS_ProjAssist_ProjectLanguage_BO_Set(
                  JS_ProjAssist_ProjectLanguage_BO_Set parmJS_ProjAssist_ProjectLanguage_BO_Set)
{
/*
 * Größe des Vectors mit den BO (der in der geerbten Basisklasse definiert ist) feststellen
 * und Index zum Durchsuchen definieren. */

      
int locintVectorSize = parmJS_ProjAssist_ProjectLanguage_BO_Set.vecRecordSet.size();
      
int locintVectorIndex;
. . . . . . . .
. . . . . . . .

Zur Sicherheit wird die Liste in dem Objekt, auf das die BO kopiert werden, geleert.
. . . . . . . .
. . . . . . . .

/* 
 * Vector mit der Liste der BO in dieser Klasse leeren. */
      this.vecRecordSet.removeAllElements();
. . . . . . . .
. . . . . . . .

In einer for-Schleife wird jedes BO mit den zu kopierenden Daten 'adressiert'.
Damit der Code leichter lesbar wird, wird eine lokale Variable (
locstructBO) definiert die auf das BO innerhalb der Liste (Vector) verweist.
. . . . . . . .
. . . . . . . .

/* 
 * Mit einer for-Schleife alle BO in der Liste des als Parameter übergebenen Objekte durchgehen. */
      for (locintVectorIndex = 0;
           
locintVectorIndex < locintVectorSize;
           
locintVectorIndex++) {
/* 
 * Das durch den Index gewählte BO aus der Liste durch eine lokale Variable leichter
 * 'greifbar' machen. */
        JS_ProjAssist_ProjectLanguage_BO locstructBO = (JS_ProjAssist_ProjectLanguage_BO)
          parmJS_ProjAssist_ProjectLanguage_BO_Set.
vecRecordSet.elementAt(locintVectorIndex);
. . . . . . . .
. . . . . . . .

      }

Ein neues BO wird 'konstruiert' und mit den zu kopierenden Daten versorgt.
Für das Kopieren (
locstructBO_New.copyFromJS_ProjAssist_ProjectLanguage_BO(locstructBO)) wird die Methode der zugehörigen Generellen BO-Klasse (JS_ProjAssist_ProjectLanguage_BO) verwendet.
. . . . . . . .
. . . . . . . .

/* 
 * Neues BO 'konstruieren' und die Methode der BO-Klasse zum Kopieren der Variablen-Werte
 * aufrufen. */
        JS_ProjAssist_ProjectLanguage_BO locstructBO_New = new JS_ProjAssist_ProjectLanguage_BO();
        
locstructBO_New.copyFromJS_ProjAssist_ProjectLanguage_BO(locstructBO);
/* 
 * Das 'neue' BO in die Liste dieses Objekts einfügen. */
        this.vecRecordSet.addElement(locstructBO_New);
. . . . . . . .
. . . . . . . .

Am Ende der Methode werden noch der Status-Code und die Status-Nachricht (Message) kopiert.
. . . . . . . .
. . . . . . . .

/* 
 * Status-Code und erklärenden Zusatz-Text in dieses Objekt übernehmen. */
      this.StatusCode = parmJS_ProjAssist_ProjectLanguage_BO_Set.StatusCode;
      this.StatusMsg = parmJS_ProjAssist_ProjectLanguage_BO_Set.StatusMsg;
    }

zum Inhaltsverzeichnis

Gesamter Code am Ende des Schrittes

Klasse JS_ProjAssist_ProjectLanguage_BO

package js_projassist.bo;
/*
 * Package mit der Basisklasse für ein BO-Set. */

import js_base.bo.JSBS_BO_Set;
/*
 * Package mit der BO-Klasse, dessen Objekte in der Liste dieser Klasse enthalten sind. */

import js_projassist.bo.JS_ProjAssist_ProjectLanguage_BO;
/* */
public class JS_ProjAssist_ProjectLanguage_BO_Set extends JSBS_BO_Set {
/*
 * METHODEN */

/* ---------------------
 * METHODE zum Kopieren der Liste mit den BO eines anderen Objekts dieser Klasse
 * in diese Klasse. */

    
public void copyFromJS_ProjAssist_ProjectLanguage_BO_Set(
                  JS_ProjAssist_ProjectLanguage_BO_Set parmJS_ProjAssist_ProjectLanguage_BO_Set)
{
/*
 * Größe des Vectors mit den BO (der in der geerbten Basisklasse definiert ist) feststellen
 * und Index zum Durchsuchen definieren. */

      
int locintVectorSize = parmJS_ProjAssist_ProjectLanguage_BO_Set.vecRecordSet.size();
      
int locintVectorIndex;
/* 
 * Vector mit der Liste der BO in dieser Klasse leeren. */
      this.vecRecordSet.removeAllElements();
/* 
 * Mit einer for-Schleife alle BO in der Liste des als Parameter übergebenen Objekte durchgehen. */
      for (locintVectorIndex = 0;
           
locintVectorIndex < locintVectorSize;
           
locintVectorIndex++) {
/* 
 * Das durch den Index gewählte BO aus der Liste durch eine lokale Variable leichter
 * 'greifbar' machen. */
        JS_ProjAssist_ProjectLanguage_BO locstructBO = (JS_ProjAssist_ProjectLanguage_BO)
          parmJS_ProjAssist_ProjectLanguage_BO_Set.
vecRecordSet.elementAt(locintVectorIndex);
/* 
 * Neues BO 'konstruieren' und die Methode der BO-Klasse zum Kopieren der Variablen-Werte
 * aufrufen. */
        JS_ProjAssist_ProjectLanguage_BO locstructBO_New = new JS_ProjAssist_ProjectLanguage_BO();
        
locstructBO_New.copyFromJS_ProjAssist_ProjectLanguage_BO(locstructBO);
/* 
 * Das 'neue' BO in die Liste dieses Objekts einfügen. */
        this.vecRecordSet.addElement(locstructBO_New);
      };
/* 
 * Status-Code und erklärenden Zusatz-Text in dieses Objekt übernehmen. */
      this.StatusCode = parmJS_ProjAssist_ProjectLanguage_BO_Set.StatusCode;
      this.StatusMsg = parmJS_ProjAssist_ProjectLanguage_BO_Set.StatusMsg;
    }

}

zum Inhaltsverzeichnis

Weitere Schritte und verwandte Dokumentation

Dokument

Inhalt

Tutorial: JavaScout ProjectAssist, Task-Frame Grundlagen (Java_Fatclient_01) – Server-Side BO-Set Klasse für eine Liste mit 'ProjectLanguage' Business-Objects  

Im nächsten Schritt des Tutorials wird die Server-Side Klasse des BO-Set (Liste mit Business-Objects) für Projekt und Sprache implementiert.
Die Server-Side Klasse 'selektiert' die Daten auf der DB-Tabelle durch das Ausführen der Methode(n), die in der DBA-Set-Klasse implementiert sind

Muster-Code für ein BO-Set (Generelle Klasse für ein Business-Object) 

In diesem Dokument wird ein Muster-Code für ein BO-Set vorgestellt und die durchzuführenden Adaptierungen beschrieben.

Tutorial: JavaScout ProjectAssist, Task-Frame Grundlagen (Java_Fatclient_01) – General BO (Business-Object) Klasse für 'ProjectLanguage' 

In diesem Schritt des Tutorials wurde beschrieben, wie die zugehörige Generelle BO-Klasse entwickelt wird.

zum Inhaltsverzeichnis