Bug 109041 [implementation] Occurrence finders should not compute current node each time
I20050906-1200 This is a minor performance improvement item: currently each occurrence finder computes the node at the caret location via NodeFinder. It would be more efficient to compute the node once and initialize each occurrence finder with that node.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/search/BreakContinueTargetFinder.java
name.setSourceRange(start, length);
		return name;
	}
	private ASTNode makeFakeNodeForClosingBrace(ASTNode targetNode) {
		ASTNode maybeBlock= getOptionalBlock(targetNode);
		if (maybeBlock == null)
			return null;
		
		/* Ideally, we'd scan backwards to find the '}' token, but it may be an overkill
		 * so I'll just assume the closing brace token has a fixed length. */
		return makeFakeNode(ASTNodes.getExclusiveEnd(maybeBlock)-BRACE_LENGTH, BRACE_LENGTH, targetNode.getAST());
	}
	/*
	 * Block cannot be return type here because SwitchStatement has no block 
	 * and yet it does have a closing brace. 
	 */
	private ASTNode getOptionalBlock(ASTNode targetNode) {
		final ASTNode[] maybeBlock= new ASTNode[1];
		targetNode.accept(new ASTVisitor(){
			public boolean visit(ForStatement node) {
				if (node.getBody() instanceof Block)
					maybeBlock[0]= node.getBody(); 
				return false;
			}
			public boolean visit(EnhancedForStatement node) {
				if (node.getBody() instanceof Block)
					maybeBlock[0]= node.getBody(); 
				return false;
			}
			public boolean visit(WhileStatement node) {