Bug 115513 [quick assist] Surround with template
Version: 3.2.0 Build id: I20051102-1600 Surround with template is an enhancement of surround with runnable. It adds logic to the 'surround with' templates. Users can define there own templates to surround code with (i.e. 'surround with ISafeRunnable').
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/SurroundWithRunnableProposal.java
boolean needsSplit(VariableDeclarationFragment last, VariableDeclarationFragment current);
		void initializeStatement(VariableDeclarationStatement statement, VariableDeclarationFragment current);
	}
	private static final String PROPOSED_RUNNABLE_VAR_NAME= "runnable"; 
	private static final String TYPE_NAME= "Runnable"; 
	private static final String METHOD_NAME= "run"; 
	private CompilationUnit fRootNode;
	private Statement[] fSelectedNodes;
	private ASTRewrite fRewrite;
	
	/**
	 * Set up a <code>SurroundWithRunnableProposal</code> which generates a @see <code>Runnable</code> arround
	 * <code>selectedNodes</code>
	 * @param name The display name of the proposal.
	 * @param context The context in which the proposal is applyed.
	 * @param relevance The relevance of this proposal.
	 * @param image The image that is displayed for this proposal or <code>null</code> if no
	 * image is desired.
	 * @param selectedNodes The selected nodes to enclose with a Runnable. Returned by <code>isValidSelection</code>.
	 */
	public SurroundWithRunnableProposal(String name, IInvocationContext context, int relevance, Image image, Statement[] selectedNodes) {
		super(name, context.getCompilationUnit(), null, relevance, image);