Objectteams
# Objectteams

Object Teams ist eine aspektorientierte Erweiterung von Java, welche in Zusammenarbeit der Technischen Universität Berlin mit dem Fraunhofer-Institut für Rechnerarchitektur und Softwaretechnik entwickelt wurde.

Object Teams besteht (derzeit) aus einem Compiler, der Object-Teams-Code für die Java-Laufzeitumgebung übersetzt, einem Laufzeitpaket sowie einer vollständigen Integration in Eclipse. Object Teams basiert im Wesentlichen auf dem Konzept von Teams und Rollen. Eine Pointcut-Sprache, wie sie (in anderer Form) auch in AspectJ eingesetzt wird um die Selektion der Basis-Klassen und -Methoden besser steuern zu können, befindet sich derzeit in Entwicklung.

## Teams

Teams sind quasi intelligente Packages: Sie fassen Klassen wie Packages zusammen, erlauben aber zusätzlich eigene Member und auch Vererbung.

## Rollen

Rollen leben innerhalb von Teams und sind Java-Klassen, die an andere Klassen gebunden werden können – diese werden als Basis bezeichnet. Über diese Bindung kann eine Rolle callin- und callout-Methoden definieren. Callin-Methoden sind Methoden, die in einer von drei Arten an Methoden der Basis-Klasse gebunden werden können. Die callin-Methode wird aufgerufen

* bei „before“: unmittelbar vor dem Aufruf der Basis-Methode,
* bei „after“: unmittelbar nach dem Aufruf der Basis-Methode und
* bei „replace“: anstatt des Aufrufs der Basis-Methode

Das Basis-Objekt wird gewissermaßen geschützt. Aufrufe auf dem Basis-Objekt sind der Rolle nicht direkt möglich. Solche Aufrufe müssen in Form von callout-Methoden explizit deklariert werden.

