Roblet®-Development-Kit
2.2 (30Dez2015)
API für Anwendungen

org.roblet
Interface Roblet


public interface Roblet

Diese Schnittstelle charakterisiert Roblet®-Klassen.  Instanzen einer solchen Klasse können einem Roblet®-Server übergeben und von ihm zum Laufen gebracht werden.

Hier ein Beispiel für eine Roblet®-Klasse:

 public class  MyRoblet
      implements org.roblet.Roblet
                  , java.io.Serializable
 {
      public Object  execute (org.roblet.Robot robot)
      {
          Object  result = null;
          // ...
          return result;
      }
      // ...
 }
 
(Da Roblets® meist über ein Netzwerk übertragen werden, muß zusätzlich zu der hier beschriebenen Schnittstelle normalerweise noch Serializable implementiert werden.)

Begriffsbestimmung

Roblet® ist der zentrale Begriff der Roblet®-Technik.  Der Begriff kann verschiedene Dinge bedeuten - in der Praxis ergibt sich jedoch aus dem Zusammenhang die jeweilige Bedeutung.

Roblet®-Klassen implementieren die hier beschriebene Schnittstelle (s. obiges Beispiel).

Roblet®-Instanzen werden in einer Anwendung zur Laufzeit erzeugt:

 MyRoblet  myRoblet = new MyRoblet ();
 // ...
 
Die in einem Roblet®-Server laufenden Instanzen werden schließlich nur mit Roblet® bezeichnet.

Der Grund für eine Unterscheidung zwischen Roblet®-Instanz und (laufendem) Roblet® ist die Tatsache, daß eine Roblet®-Instanz beliebig oft verschickt und damit beliebig oft zum Laufen gebracht werden kann.  D.h. von einer Roblet®-Klasse können mehrere Roblet®-Instanzen und von diesen jeweils mehrere Roblets® erzeugt werden.

See Also:
execute(Robot), Robot

Method Summary
 Object execute(Robot robot)
          Ein Roblet® wird vom Roblet®-Server durch Aufruf dieser Methode laufengelassen - quasi zum Leben erweckt.
 

Method Detail

execute

Object execute(Robot robot)
               throws Exception
Ein Roblet® wird vom Roblet®-Server durch Aufruf dieser Methode laufengelassen - quasi zum Leben erweckt.  Sie entspricht dabei in der Bedeutung etwa einer main(...)-Einsprungsroutine für eine Java™-Anwendung oder dem run() der Schnittstelle Runnable aus der Java™-Standard-Bibliothek.

Der Parameter Robot ist der Schlüssel zum Roblet®-Server (ursprünglich ein Roboter).  Diese übergebene Instanz kann benutzt werden, um festzustellen, ob der Server gewünschte Einheiten (Unit) bereitstellt.  Sie ist niemals null.

Es kann die Instanz einer beliebigen Klasse zurückgeben werden.  Dazu gehören auch Felder eines beliebigen Klassentyps (z.B. String[]).

Der Roblet®-Server gibt die jeweilige Instanz an die aufrufende Anwendung zurück.  Dabei ist zu beachten, daß es sich beim Arbeiten im Netz um serialisierbare (vgl. Serializable) Klassen handeln muß.  Es gilt, daß Felder serialisierbarer Klassen serialisierbar sind.

Da der Entwickler weiß, welchen Typ seine zurückgegebene Instanz zur Laufzeit haben wird, kann man auch den entsprechenden cast-Operator "(Klassentyp)" auf Anwendungsseiten auf den Rückgabewert anwenden.  Natürlich ist auch eine Rückgabe von null möglich.  null läßt sich notfalls auf jeden Typ wandeln (cast).

Das ausgeführte Roblet® braucht Ausnahmen, die vom Typ Exception abgeleitet sind, nicht abzufangen.  Die jeweilige Ausnahme wird auf Seiten der Anwendung ebenso als Ausnahme geworfen und kann dort abgefangen werden.

Parameters:
robot - Erlaubt Zugriff auf die Einheiten des unterliegenden Roboters;  stets ungleich null
Returns:
Beliebige Instanz einer Klasse oder auch null
Throws:
Exception - Beliebige Ausnahme

Roblet®-Development-Kit
2.2 (30Dez2015)
API für Anwendungen

Copyright © 2001-2015, roblet®.org, Hagen Stanek, http://roblet.org/rdk