Jump to: navigation, search

OTDT/NonAPI

For the sake of a smooth and deep integration into the JDT the OTDT connects to other plugins using these non-API mechanisms:

  • Adaptation using OT/Equinox with Team obj.gif Team and Role classes.
  • Accessing internal classes

The extent and rationale is documented on this page.

Affected plugins

org.eclipse.jdt.core

The OTDT contains a variant of the jdt.core plugin as described here.

Additionally, the following OT plugins access internals of the JDT/Core:

  • Plugin obj.gif org.eclipse.objectteams.otdt
    • Team obj.gif OTTypeHierarchies -- This team adapts the TypeHierarchy mechanism to account for implicit inheritance
  • Plugin obj.gif org.eclipse.objectteams.otdt.apt
    • Team obj.gif VisitorsAdaptor -- This team accesses internal classes for adapting annotation processing (APT)
  • Plugin obj.gif org.eclipse.objectteams.otdt.compiler.adaptor
    • Multiple Team classes -- adaptations for the following purposes
      • ensure the incremental builder respects implicit role inheritance as a trigger for rebuilding affected classes
      • make information from aspectBindings available for checking imports and specifically base imports during compilation

org.eclipse.jdt.core.apt

Accessed by:

  • Plugin obj.gif org.eclipse.objectteams.otdt.apt
    • Team obj.gif VisitorsAdaptor -- This team adapts the AnnotationDiscoveryVisitor so that it will finds annotations of method bindings (callin/callout) and their arguments, too.

org.eclipse.jdt.ui

Accessed by:

  • Plugin obj.gif org.eclipse.objectteams.otdt.debug.adaptor
    • Team obj.gif PresentationAdaptor -- access JavaEditor for computing the start line of an element
    • Also: instantiate internal class AppearanceAwareLabelProvider.

org.eclipse.jdt.debug

Accessed by:

  • Plugin obj.gif org.eclipse.objectteams.otdt.debug.adaptor

org.eclipse.jdt.debug.ui

Accessed by:

  • Plugin obj.gif org.eclipse.objectteams.otdt.debug.adaptor
    • Team obj.gif PresentationAdaptorActivator -- beautify stackframes relating to generated code (manages activation of PresentationAdaptor)
    • Team obj.gif DebugUIDialogAdaptor2 -- add new "Team Activation" tab to LocalJavaApplicationTabGroup
    • Team obj.gif JDTDebugUILaunchingAdaptor -- add OT/J checkbox to JavaJRETab and JavaConnectTab
    • Team obj.gif OTToggleBreakpointAdapter -- replace ToggleBreakPointAdapter with a variant that handles implicit role inheritance and non-Java elements (callout/callin method binding)
    • also: extend ToggleBooleanPreferenceAction to implement a new option in the Variables view
    • also: access to two internal constants from DebugUIMessages
    • for a variant of BreakpointLocationVerifierJob
      • copy&adjust some source files
      • access internal classes ActionDelegateHelper, ActionMessages, BreakpointUtils, DebugWorkingCopyManager, JavaDebugUtils, JDIDebugUIPlugin, ValidBreakpointLocationLocator

org.eclipse.jdt.launching

Accessed by:

  • Plugin obj.gif org.eclipse.objectteams.otdt.debug.adaptor

org.eclipse.jdt.junit

Accessed by:

  • Plugin obj.gif org.eclipse.objectteams.otdt.debug.adaptor

org.eclipse.jdt.junit.core

Accessed by:

  • Plugin obj.gif org.eclipse.objectteams.otdt.debug.adaptor

org.eclipse.debug.core

Accessed by:

  • Plugin obj.gif org.eclipse.objectteams.otdt.debug.adaptor

org.eclipse.debug.ui

Accessed by:

  • Plugin obj.gif org.eclipse.objectteams.otdt.debug.adaptor
  • Plugin obj.gif org.eclipse.objectteams.otdt.debug.ui
    • for implementing a view similar to the Variables view:
      • subclass internal classes AbstractModelProxy, VariableLabelProvider
      • access internal classes ModelDelta, VariableColumnPresentation, IPresentationContext
    • also: instantiate internal class BooleanFieldEditor2 which works around a method protection
    • access internal class ColorManager

org.eclipse.pde.core

Accessed by:

  • Plugin obj.gif org.eclipse.objectteams.otdt.compiler.adaptor
    • Team obj.gif PDEAdaptor -- feed information about aspectBindings into the compiler for access checking

org.eclipse.pde.ui

Accessed by:

  • Plugin obj.gif org.eclipse.objectteams.otdt.debug.adaptor
    • Team obj.gif PDELaunchingAdaptor -- add OT/Equinox checkbox to all OSGi related launch configuration dialogs (JREBlock)
    • also: access to an internal constant from IPDEUIConstants
  • Plugin obj.gif org.eclipse.objectteams.otdt.samples
    • Team obj.gif SamplesAdapter -- small bugfixes and adjustments for re-using "orphaned" classes

org.eclipse.pde.launching

Accessed by:

  • Plugin obj.gif org.eclipse.objectteams.otdt.debug.adaptor

org.eclipse.core.resources

Accessed by:

  • Plugin obj.gif org.eclipse.objectteams.otdt.compiler.adaptor
    • Team obj.gif ResourceProjectAdaptor -- decorate objects of type Project to store two more fields if the project is an OT/Equinox project.

Status: List of OT-plugins processed:

  • org.eclipse.objectteams.otdt
  • org.eclipse.objectteams.otdt.apt
  • org.eclipse.objectteams.otdt.compiler.adaptor
  • org.eclipse.objectteams.otdt.debug
  • org.eclipse.objectteams.otdt.debug.ui
  • org.eclipse.objectteams.otdt.debug.adaptor
  • org.eclipse.objectteams.otdt.samples