Ich möchte eine DB-Suche durchführen. Dazu rufe ich eine Methode auf die ein Objekt als Parameter empfängt das vom Typ "CeSearch" ist. Die Methode schaut sich dann die Parameter von CeSearch an und startet die Suche.
Wenn ich nur eine bestimmte Kategorie durchsuchen will, ist es derzeit notwendig dass ich "CeSearchScope.CATEGORY" übergebe und zusätzlich den Namen der Kategorie (Parameter "category").
Leider ist es möglich hier Fehler zu machen, wie z.B. die Kategorie nicht anzugeben oder aber die Kategorie anzugeben und dann nicht den richtigen Scope einzustellen, was dann dazu führt dass die Kategorie ignoriert wird usw.
Alles irgendwie unsauber! Ich würde gerne die Kategorie nur übergeben müssen wenn es sich um den entsprechenden Scope handelt. Weil in jedem anderen Fall ist der Parameter "category" überflüssig.
Wie könnte ich das strukturtechnisch lösen? Ich hoffe ich konnte das Problem einigermaßen verständlich schildern ^^
Grüße,
DS
Code:
public class CeSearch {
private String text;
private String category;
private CeSearchScope scope;
public CeSearch(String text, String category, CeSearchScope scope) {
setText(text);
setCategory(category);
setScope(scope);
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public CeSearchScope getScope() {
return scope;
}
public void setScope(CeSearchScope scope) {
this.scope = scope;
}
}
Code:
public enum CeSearchScope {
ALL, TAGS, CONTENT, TITLE, CATEGORY;
}
Wenn ich nur eine bestimmte Kategorie durchsuchen will, ist es derzeit notwendig dass ich "CeSearchScope.CATEGORY" übergebe und zusätzlich den Namen der Kategorie (Parameter "category").
Leider ist es möglich hier Fehler zu machen, wie z.B. die Kategorie nicht anzugeben oder aber die Kategorie anzugeben und dann nicht den richtigen Scope einzustellen, was dann dazu führt dass die Kategorie ignoriert wird usw.
Alles irgendwie unsauber! Ich würde gerne die Kategorie nur übergeben müssen wenn es sich um den entsprechenden Scope handelt. Weil in jedem anderen Fall ist der Parameter "category" überflüssig.
Wie könnte ich das strukturtechnisch lösen? Ich hoffe ich konnte das Problem einigermaßen verständlich schildern ^^
Grüße,
DS