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.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: Team and role inheritance
§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.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
§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.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
§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: Limitations
§A: ObjectTeams/Java 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.1.1: ClassDeclaration
§A.2: Modifiers
§A.2.1: Modifier
§A.3: Method bindings
§A.3.1: ClassBodyDeclaration
§A.3.2: CalloutBinding
§A.3.3: Callin binding
§A.3.4: MethodSpec
§A.3.5: MethodSpecs
§A.3.6: CalloutKind
§A.3.7: CallinModifier
§A.3.8: CalloutModifier
§A.3.9: FieldSpec
§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 0.9 — Last modified: Wed Dec 20 2006