Method Signature Refactoring
<p>I have multiple databases of users that I have to search on. The user can have multiple instances and the app checks if the user is a duplicate across the different databases. </p>

<p>So each user is associated with a client, and the fields are populated differently based on what client it is. (I know it's not right, but this is inherited application) My thought would be to refactor it by adding the client as a parameter into the getUserData method. However i'm realizing this is a change preventer smell. There are many wrapper methods that will pass in default values. i also have to traverse the call hiearchy far back enough that I would have access to the client object to pass in. This may be for or five method calls, so I would have to change those as well. At this point, the way the app was developed(by other developers) is very rigid when it comes to this, and I am looking to improve it.</p>

<p>The getUserData method:</p>

<pre><code>public User getUserData(String userId, boolean fullUserRecord, Date userStartDate){
    //retrive userdata from db
    //attach client specific data for user

}
</code></pre>

<p>Example of a wrapper method:</p>

<pre><code>public User getUserData(String userId,  Date userStartDate){
    getUserData(userId, false, userStartDate)

}
</code></pre>

<p>My question would be, how do I best handle this. Currently i am going down the rabbit hole of changing the method signature, but if this needs to change again, I would have to do the same thing, which won't be fun.</p>