There is an instance of God Class (Large Class) in “SearchAndReplace”
class. The class is large and has several components (methods). This
class has two responsibilities: Searching and Replacing content. Hence,
there is low cohesion between those distinct functionalities. Therefore,
there is no abstraction for the role of the class since it contains
different functionalities. There are methods in the “SearchAndReplace”
class, that can be extracted to make the class smaller, manageable and
also to increase cohesion .
In order to improve the cohesion of the methods in “SearchAndReplace”
class and to narrow the class objectives to perform a particular task
(i.e. Search or Replace), we will extract all related replace
functionalities from ‘SearchAndReplace” class to a separate class
“Replace”, which is specialized for replacing content using extract
class refactoring.

These refactorings are exactly performed according to published jEdit
Milestone #3, 2.1.1 God Class
Rename the refactored "SearchAndReplace" class to "Search", in order for
the name of the  class to match its concrete functionality.

These refactorings are exactly performed according to published jEdit
Milestone #3, 2.1.1 God Class
Merge pull request #2 from SOEN6471-jEdit/godclassrefactoring

Godclassrefactoring pull request to merge with develop