I get confused trying to write the LoginMatcher which should search through the database and match the remoteUser to the right record on the database, using only the username :
I'm not sure if the argument of the find method should be passed as a String or LoginFilter object or Member object. No matter which one of these types I set remoteUser in in the LoginMatcher class I get:
Member member = memsearch.find(remoteUser);
reason: actual argument String cannot be converted to Member by method invocation conversion
Would really appreciate any advice on what I'm doing wrong and how to correctly write the LoginMatcher class. Thanks!
Also the provided find method doesn't return a Member but a LoginFilter. But in your filter class it's returning a Member.
Thanks for your response.
Looking in the find method in LoginMatcher, why is it returning find(remoteUser) again when now the remoteUser is an Object? Is this find another overloaded method?
I don't think find() is an overloaded method, since it is intended to return a remoteUser which is of object type Member. I'm not even sure it overrides an existing find method (looking at the APIs of the imports).
Also the provided find method doesn't return a Member but a LoginFilter. But in your filter class it's returning a Member
Yes, it needs to return a Member as mentioned above. So, I would like to know how to correctly write the LoginMatcher class so that it iterates through the DB records, provides a match between the remoreUser String and the member object in the database and returns the remoteUser based on the identified member object. Please let me know if that flow logic makes sense.
If not I'll just go back to the drawing board. Thank you!
So my question now is how do I ensure that the remoteUser value is correctly passed from the LoginFilter class to LoginMatcher?
The selectLogin method in the DAO class is: