ObjectTeams/Java Language Definition
 
 
 
Table of Contents

§0: About this document

§0.1: Purpose(s) of this document
§0.2: Text structure
§0.3: Compiler messages
§0.4: Versions

§1: Teams and Roles

§1.1: Team classes
§1.2: Role classes and objects
§1.3: Team and role inheritance
§1.4: Name clashes
§1.5: Team and role nesting

§2: Role binding

§2.1: playedBy relation
§2.2: Lowering
§2.3: Lifting
§2.4: Explicit role creation
§2.5: Abstract Roles
§2.6: Explicit base references
§2.7: Advanced structures

§3: Callout binding

§3.1: Callout method binding
§3.2: Callout parameter mapping
§3.3: Lifting and lowering
§3.4: Overriding access restrictions
§3.5: Callout to field

§4: Callin Binding

§4.1: Callin method binding
§4.2: Callin modifiers (before, after, replace)
§4.3: Base calls
§4.4: Callin parameter mapping
§4.5: Lifting and lowering
§4.6: Overriding access restrictions
§4.7: Callin binding with static methods
§4.8: Callin precedence

§5: Team activation

§5.1: Effect of team activation
§5.2: Explicit team activation
§5.3: Implicit team activation
§5.4: Guard predicates
§5.5: Unanticipated team activation

§6: Object Teams API

§6.1: Reflection
§6.2: Other API Elements

§7: Role encapsulation

§7.1: Opaque roles
§7.2: Confined roles

§8: Join point queries

§8.1: Join point queries
§8.2: Query expressions
§8.3: OT/J meta model

§9: Value Dependent Classes

§9.1: Defining classes with value parameters
§9.2: Using classes with value parameters
§9.3: Restrictions and limitations

§A: ObjectTeams/Java Syntax

§A.0: Keywords
§A.1: Class definitions
§A.2: Modifiers
§A.3: Method bindings
§A.4: Parameter mappings
§A.5: Statements
§A.6: Types
§A.7: Guard predicates
§A.8: Precedence declaration
§A.9: Value dependent types
§A.10: Packages and imports

© Stephan Herrmann, Christine Hundt
OT/J Version 1.0 — Last modified: Fri Mar 30 2007