org.demac.impl.rmi
Class DEMACLocalCodeBase

java.lang.Object
  extended by java.lang.ClassLoader
      extended by org.demac.impl.rmi.DEMACLocalCodeBase

public class DEMACLocalCodeBase
extends java.lang.ClassLoader

Die Klasse LocalCodeBase dient der Speicherung der Klassenrepräsentationen und dem Zugriff darauf. In dieser Ausbaustufe müssen Methoden, welche ein Device Handle als Eingabe erwarten mit dem Wert "null" (Wert des Device Handles) aufgerufen werden. Der Device Handle soll in der nächsten Ausbaustufe dazu benutzt werden, eindeutig festzustellen, von welchem Device die Klassenrepräsentationen stammen und im Falle einer Überschneidung der Klassennamen der verschiedenen Devices die korrekte Klasse zu wählen


Method Summary
 int addClassRep(byte[] classRep, java.lang.String className, java.lang.String deviceHandle)
          Methode zum Hinzufügen der Klassen Repräsentationen zu der lokalen Codebase
 boolean containsClass(java.lang.String className, java.lang.String deviceHandle)
          Methode zum Testen, ob eine Klasserepräsentation in der lokalen Codebase vorhanden ist
 byte[] getClassRep(java.lang.String className, java.lang.String deviceHandle)
          Die Methode liefert die Byte - Code - Repräsentation einer Klasse aus der Codebase
static DEMACLocalCodeBase getInstance()
          Kein dierekte Instaziierung, da Singleton
 java.util.Enumeration listClasses()
          Methode zum Auflisten aller Klassen (v. k.
 int removeClassRep(java.lang.String className, java.lang.String deviceHandle)
          Methode zum Löschen der Klassenrepräsentationen uas der Codebase
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInstance

public static DEMACLocalCodeBase getInstance()
Kein dierekte Instaziierung, da Singleton

Returns:
DEMACLocalCodeBase instance

addClassRep

public int addClassRep(byte[] classRep,
                       java.lang.String className,
                       java.lang.String deviceHandle)
Methode zum Hinzufügen der Klassen Repräsentationen zu der lokalen Codebase

Parameters:
classRep - Byte - Array, welches eine Klasse repräsentiert
className - Name der Klasse, inkl. Package - Präfix (fully qualified class name)
deviceHandle - UUID des Devices, von dem die Klassenrepräsentation stammt
Returns:
0 wenn die klasse bereits exisiert (wird nicht überschrieben), 1 wenn nicht (die Klassenrepräsentation) wird hizugefügt

containsClass

public boolean containsClass(java.lang.String className,
                             java.lang.String deviceHandle)
Methode zum Testen, ob eine Klasserepräsentation in der lokalen Codebase vorhanden ist

Parameters:
className - Name der Klasse, inkl. dem Package - Präfix (fully qualified class name)
deviceHandle - UUID des Devices, von dem die Klassenrepräsentation stammt
Returns:
true, wenn sich eine Repräsentation der Klasse in der lokalen Codebase befindet false falls es nicht der Fall ist

getClassRep

public byte[] getClassRep(java.lang.String className,
                          java.lang.String deviceHandle)
Die Methode liefert die Byte - Code - Repräsentation einer Klasse aus der Codebase

Parameters:
className - Name der Klasse, inkl. dem Package - Präfix (fully qualified class name)
deviceHandle - UUID des Devices, von dem die Klassenrepräsentation stmammt
Returns:
Byte - Code - Repräsentation der durch die beiden Parameter spezifizierten Klasse

listClasses

public java.util.Enumeration listClasses()
Methode zum Auflisten aller Klassen (v. k. Klassenname (fully qualified class name) + UUID des zugehörigen Devices)

Returns:
Enumeration über alle Klassenname

removeClassRep

public int removeClassRep(java.lang.String className,
                          java.lang.String deviceHandle)
Methode zum Löschen der Klassenrepräsentationen uas der Codebase

Parameters:
className - Name der Klasse, inkl. dem Package - Präfix (fully qualified class name)
deviceHandle - deviceHandle UUID des Devices, von dem die Klassenrepräsentation stmammt
Returns:
0, wenn die durch die beiden Parameter beschriebene Klasse sich nicht in der Codebase befand 1, wenn die beschriebene Klasse erfolgreicg gelöscht wurde