Dependency of static methods  refactoring
Create the new hypersearch method that will replace the existing one.
This method guarantees assignation of the variables



Change-Id: I964f70e26480048c6ea7c6a593e9febfcba5cfc1
Dependency of static methods  refactoring
Replace the calls from the old method to the new methods that ensures
variables are set.
Old method that has implicit dependencies has been made private, so no
class can call it from outside, only the new method is calling it.

Change-Id: I6f24293e1bed130b71d70cc24f4d48cfb563d3b0
Merge pull request #1 from SOEN6471-jEdit/staticrefactoring

Staticrefactoring merging to develop branch
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
While looking into the God Class code smell (section 2.1.1 of jEdit
Milestone #3) in the Replace class, another code smell was identified.
This code smell fell under the criteria of “Instance Of ” code smell.
The method in which “Instance Of” code smell, current changes and
refactroing in Replace class and Selection class have removed the
InstanceOf code smell.

Detailed instructions of steps of the refactorings and the changes made
are available in the published jEdit Milestone #3, section 2.1.2 Type
Checkinh (InstanceOf)
Merge pull request #3 from SOEN6471-jEdit/instanceofrefactoring

instanceofrefactoring pull request
The method regexpReplace in Replace class is long and difficult to
comprehend due to its complex flow of execution caused by the loop,
switch and if statements. The method can be shorter by extracting less
cohessive parts using extract method refactoring. 
for compelete details regarding to this refactoring please refer to the
publishe JEdit Milestone #3, section 2.1.3 Long Method
Merge pull request #4 from SOEN6471-jEdit/longmethodrefactoring

longmethodrefactoring pull request
Merge pull request #5 from SOEN6471-jEdit/release

Pull request to merge release branch