Latest News

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
§0.5 Publishing
§1 Teams and Roles
§1.1 Team classes
§1.2 Role classes and objects
§1.2.1 Modifiers for roles
§1.2.2 Externalized roles
§1.2.3 Protected roles
§1.2.4 Type tests and casts
§1.2.5 File structure
§1.3 Acquisition and implicit inheritance of role classes
§1.3.1 Acquisition and implicit inheritance of role classes
§1.3.2 Regular role inheritance
§1.4 Name clashes
§1.5 Team and role nesting
§2 Role Binding
§2.1 playedBy relation
§2.1.1 Binding interfaces
§2.1.2 Legal base classes
§2.2 Lowering
§2.3 Lifting
§2.3.1 Implicit role creation
§2.3.2 Declared lifting
§2.3.3 Smart lifting
§2.3.4 Binding ambiguities
§2.3.5 Consequences of lifting problems
§2.4 Explicit role creation
§2.4.1 Role creation via a lifting constructor
§2.4.2 Role creation via a regular constructor
§2.4.3 Role creation in the presence of smart lifting
§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
§4.9 Callin inheritance
§4.9.1 Base side inheritance
§4.9.2 Role side inheritance
§4.9.3 Covariant return types
§4.10 Generic callin bindings
§5 Team Activation
§5.1 Effect of team activation
§5.1.1 Global vs. thread local team activation
§5.1.2 Effect on garbage collection
§5.2 Explicit team activation
§5.3 Implicit team activation
§5.4 Guard predicates
§5.4.1 Regular guards
§5.4.2 Base guards
§5.4.3 Multiple guards
§5.5 Unanticipated team activation
§6 Object Teams API
§6.1 Reflection
§6.2 Other API Elements
§6.3 Annotations
§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.2.1 Parameter substitution
§9.2.2 Type conformance
§9.3 Restrictions and limitations
§A OT/J Syntax
§A.0 Keywords
§A.0.1 Scoped keywords
§A.0.2 Inheriting scoped keywords
§A.0.3 Internal names
§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
§B Changes between versions
§B.1 Paragraphs changed between versions
§B.2 Additions between versions