ASTNode node= NodeFinder.perform(root, offset, length); if (!(node instanceof Name)) return SearchMessages.ImplementOccurrencesFinder_invalidTarget;  fSelectedNode= ASTNodes.getNormalizedNode(node); if (!(fSelectedNode instanceof Type)) return SearchMessages.ImplementOccurrencesFinder_invalidTarget;  ASTNode typeDeclaration= fSelectedNode.getParent(); if (!(typeDeclaration instanceof AbstractTypeDeclaration)) return SearchMessages.ImplementOccurrencesFinder_invalidTarget;  fSelectedType= ((Type)fSelectedNode).resolveBinding(); if (fSelectedType == null) return SearchMessages.ImplementOccurrencesFinder_invalidTarget;  fStart= typeDeclaration; return null;
return initialize(root, NodeFinder.perform(root, offset, length));
	public String initialize(CompilationUnit root, int offset, int length) {		ASTNode node= NodeFinder.perform(root, offset, length);		if (!(node instanceof Name))			return SearchMessages.ImplementOccurrencesFinder_invalidTarget;  				fSelectedNode= ASTNodes.getNormalizedNode(node);		if (!(fSelectedNode instanceof Type))			return SearchMessages.ImplementOccurrencesFinder_invalidTarget;				ASTNode typeDeclaration= fSelectedNode.getParent();		if (!(typeDeclaration instanceof AbstractTypeDeclaration))			return SearchMessages.ImplementOccurrencesFinder_invalidTarget;  				fSelectedType= ((Type)fSelectedNode).resolveBinding();		if (fSelectedType == null)			return SearchMessages.ImplementOccurrencesFinder_invalidTarget;  		fStart= typeDeclaration;		return null;	}