task #6612
closedImplement dao and service class for Registrations
0%
Description
open issue:
- status collection not yet evalutaten in service.page(submitter, includedStatus, ...)
Related issues
Updated by Andreas Kohlbecker over 6 years ago
- Due date set to 03/23/2017
- Start date changed from 05/02/2017 to 03/23/2017
- Follows task #6258: Add Registration to cdm model added
Updated by Andreas Müller over 6 years ago
- Description updated (diff)
- Status changed from New to Resolved
Updated by Andreas Müller over 6 years ago
AK: mit ist noch eine zusätzliche Anforderung an die Service Methoden eingefallen:
Beide Methoden in IRegistrationService sollten als Paramter eine Collection von RegistrationStatus akzeptieren anhand derer die Registrations gefiltert werden.
In diesem Zusammenhang steht auch die Idee die DAO Methode
public List<T> list(Class<? extends T> type, String propertyName, Object value, MatchMode matchMode, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths)
so zu erweitern dass sie für beliebig viele property/value Paare verwendbar ist:
public List<T> list(Class<? extends T> type, Map<String, Collection<Object>> restrictions, MatchMode matchMode, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths)
propertyValues wird in der Implementierung so verwendet, dass mehrere values pro propertyName OR verknüpft werden wobei die Criteria pro property AND verknüpft sind.
Noch besser wäre die Verwendung einer PropertyNameMatchMode Klasse :
class PropertyNameMatchMode {
String propertyName;
MatchMode matchMode;
}
public List<T> list(Class<? extends T> type, Map<PropertyNameMatchMode, Collection<Object>> restrictions, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths)
Updated by Andreas Kohlbecker over 6 years ago
a.mueller:
Habe die Implementierung gerade überflogen. 2 Fragen:
1) Sollten wir die alte Signatur nicht weiterhin zusätzlich anbieten. Der Fall, dass man nur einen Parameter hat ist ja der weitaus häufigste. Und dann spart sich der User das "aufwendige" erzeugen der Zusatzinstanz. Intern wird dann natürlich eine Map (oder entsprechendes erzeugt).
2) Ich verstehe die Konstruktion mit der Map nicht so ganz. Wenn PropertyNameMatchMode sowieso schon eine Datenstruktur ist und kein einfacher Parameter, dann kann man die restrictions doch gleich da mit rein packen, dass macht es ein bisschen leichter zu handeln und zu verstehen.
Updated by Andreas Kohlbecker over 6 years ago
Andreas Kohlbecker wrote:
a.mueller:
2) Ich verstehe die Konstruktion mit der Map nicht so ganz. Wenn PropertyNameMatchMode sowieso schon eine Datenstruktur ist und kein einfacher Parameter, dann kann man die restrictions doch gleich da mit rein packen, dass macht es ein bisschen leichter zu handeln und zu verstehen.
Einverstanden ....
Updated by Andreas Kohlbecker over 6 years ago
- Assignee changed from Andreas Kohlbecker to Andreas Müller
... Done! Please review.
Updated by Andreas Müller over 6 years ago
- Status changed from Resolved to Closed
- Assignee changed from Andreas Müller to Andreas Kohlbecker
From the code it looks ok. I cleaned up some generics.
Updated by Andreas Müller over 6 years ago
- Target version changed from Release 4.7 to Release 4.8
As this is in the model change branch it goes into 4.8