## Package org.eclipse.datatools.sqltools.plan

Interface Summary
IExecutionPlanDocument: This is the model for drawing purpose.
IHelpConstants: This file contains all the context help ID that are used by following DTP plugins: TPS_helpKey_constants_for_plug-in: org.eclipse.datatools.sqltools.plan
IPlanDrawer: Class that implements this interface can draw a sub-execution plan on a `Canvas`.

IPlanOption

Generally speaking, a database server may support several types of execution plan, for example, a text type and a graphic type, which renders the execution plan in text string or using graph respectively.
This interface tries to build a relationship between the type id and type name, and check which type is graphic one, such that the framework can draw the execution plan in a canvas instead of displaying it as a literal string.
Also, the consumer needs to create the preference section on "Execution Plan View Option" page to let the end user select the plan type, the framework does not implement this part.

IPlanParser: Parse the execution plan from raw data to modeled data --- `IExecutionPlanDocument`, then `IPlanDrawer` will draw it on a `Canvas`. Generally speaking, the raw data of the plan is expected to be a well-formed xml string.
IPlanService: In order to support graphic execution plan when using EPV (SQL Execution Plan View), consumer must provide the plan parser and plan drawer, which are used to parse the raw plan data and draw graphic plan.

Class Summary
AbstractPlanDrawer: Consumers of Execution Plan View can extend this class intead of implementing `IPlanDrawer` from scratch.
EPVFacade: The facade of EPV (SQL Execution Plan View).
Messages
PlanOption: A default implementation of `IPlanOption`, the vendor should implement `IPlanOption` from scratch
PlanRequest: Start point to use EPV (SQL Execution Plan View), every time when the consumer needs to display an execution plan on EPV, it must construct an instance of `PlanRequest` first.
PlanService
PlanServiceRegistry: Registry for "planService"
PlanSupportRunnable: The base class which performs the operations to retrieve plan from database.