Project

General

Profile

Actions

task #6612

closed

Implement dao and service class for Registrations

Added by Andreas Kohlbecker over 5 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Highest
Category:
cdmlib
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Severity:
blocker
Tags:

Description

open issue:

  • status collection not yet evalutaten in service.page(submitter, includedStatus, ...)

Related issues

Follows (7 days) EDIT - task #6258: Add Registration to cdm modelClosedAndreas Kohlbecker

Actions
Actions #1

Updated by Andreas Kohlbecker over 5 years ago

  • Tracker changed from bug to task
Actions #2

Updated by Andreas Kohlbecker over 5 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
Actions #3

Updated by Andreas Müller over 5 years ago

  • Description updated (diff)
  • Status changed from New to Resolved
Actions #4

Updated by Andreas Müller over 5 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)
Actions #5

Updated by Andreas Kohlbecker over 5 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.

Actions #6

Updated by Andreas Kohlbecker over 5 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 ....

Actions #7

Updated by Andreas Kohlbecker over 5 years ago

  • Assignee changed from Andreas Kohlbecker to Andreas Müller

... Done! Please review.

Actions #8

Updated by Andreas Müller over 5 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.

Actions #9

Updated by Andreas Müller over 5 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

Actions

Also available in: Atom PDF