Hi,
ich habe ein Object (Customer) mit den Attributen: name, email, city und status.
Mehrere dieser Objekte befinden sich in einem Vector<Customer>.
Jetzt habe ich eine Suchfunktion bauen, welche mir nach Eingabe eines ODER mehrer Parameter eine Ergebnisliste auswirft.
Aktuell steh ich vor dem Problem, dass ich einen If-Verteiler einbaue, den ich exponentiell erweitern muss, wenn man ein vierter Parameter hinkommt:
Ich müsste jetzt ja für jede Kombination aus den Parametern so einen If-Kasten bauen, jetzt nur 8 bzw. 7, mit einem vierten Parameter schon 16 usw. wie kann ich das eleganter lösen?
ich habe ein Object (Customer) mit den Attributen: name, email, city und status.
Mehrere dieser Objekte befinden sich in einem Vector<Customer>.
Jetzt habe ich eine Suchfunktion bauen, welche mir nach Eingabe eines ODER mehrer Parameter eine Ergebnisliste auswirft.
Aktuell steh ich vor dem Problem, dass ich einen If-Verteiler einbaue, den ich exponentiell erweitern muss, wenn man ein vierter Parameter hinkommt:
Code:
public Vector<Customer> getCustomerBySearch(String emailName, String city, CustomerStatus status) {
Vector<Customer> res = new Vector<Customer>();
Vector<Customer> resultNameEmail = getCustomerBySearchNameEmail(emailName);
Vector<Customer> resultCity = getCustomerBySearchCity(city);
Vector<Customer> resultStatus = getCustomerBySearchStatus(status);
if (!emailName.equals("") && !city.equals("") && status != null) {
resultNameEmail.retainAll(resultCity);
resultNameEmail.retainAll(resultStatus);
res = resultNameEmail;
}
return res;
}
Ich müsste jetzt ja für jede Kombination aus den Parametern so einen If-Kasten bauen, jetzt nur 8 bzw. 7, mit einem vierten Parameter schon 16 usw. wie kann ich das eleganter lösen?