Project

General

Profile

Actions

feature request #694

closed

FeatureTreeService and DescriptionElement implemented

Added by Andreas Kohlbecker almost 14 years ago. Updated 11 months ago.

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

100%

Estimated time:
Severity:
normal
Tags:

Description

see email https://webmail.mnhn.fr/wws/arc/dev-cdmlib/2009-04/msg00003.html

I think it makes sense to have services for classes like FeatureTree

and DescriptionElement instead of embedding them in

DescriptionService, and TermVocabulary instead of embedding it in TermService, as it means ..

I think this change would make the api much clearer and easier to use.

I vote for this change!


Related issues

Copied to EDIT - task #9944: Move further methods from DescriptionService to DescriptionElementServiceNewAndreas Müller

Actions
Copied to EDIT - bug #9947: Make DescriptionElementController inherit from base controller and remove doGetDescriptionElementAnnotationsNewAndreas Müller

Actions
Actions #1

Updated by Andreas Müller over 13 years ago

  • Priority changed from Priority08 to Priority11
Actions #2

Updated by Katja Luther over 13 years ago

  • Target version changed from CDM lib Release 2.0 to CDM lib Release 2.3
Actions #3

Updated by Andreas Müller over 1 year ago

  • Description updated (diff)

We do have a term tree service. But there is no DescriptionElementService yet. Needs discussion if we really need it.

Actions #4

Updated by Andreas Kohlbecker over 1 year ago

  • Tags set to api
  • Private changed from Yes to No
Actions #5

Updated by Andreas Müller over 1 year ago

  • Tags changed from api to service-api
Actions #6

Updated by Andreas Müller about 1 year ago

  • Status changed from New to Resolved
  • Target version changed from cdmlib - Old Next Major Release to Release 5.37
Actions #7

Updated by Andreas Müller about 1 year ago

  • Assignee changed from Andreas Müller to Andreas Kohlbecker
  • % Done changed from 0 to 50

please review

Actions #8

Updated by Andreas Kohlbecker 12 months ago

  • Status changed from Resolved to Feedback
  • Assignee changed from Andreas Kohlbecker to Andreas Müller

This ticket is fairly old. The DescriptionElementService functionality once has been implemented into the DescriptionServiceImpl. Now we have two services for DescriptionElements. I am bit undecided how to deal with this situation. We could deprecate all old DescriptionElement-methods and reactor all callers to use the new service.

That we are having DescriptionElementService now offers to options to use the polymorphism also for the DescriptionElementController which could not be bases on the AbstractIdentifiableController so far.

Actions #9

Updated by Andreas Müller 12 months ago

  • Assignee changed from Andreas Müller to Andreas Kohlbecker

Andreas Kohlbecker wrote in #note-8:

This ticket is fairly old. The DescriptionElementService functionality once has been implemented into the DescriptionServiceImpl. Now we have two services for DescriptionElements. I am bit undecided how to deal with this situation. We could deprecate all old DescriptionElement-methods and reactor all callers to use the new service.

That we are having DescriptionElementService now offers to options to use the polymorphism also for the DescriptionElementController which could not be bases on the AbstractIdentifiableController so far.

I do not fully understand this answer. Have you looked at the code? I already removed the old methods. So they are not only deprecated but removed. All controllers are using the new methods already.
However, I did not check yet, if there might be more methods that need to be moved.

Actions #10

Updated by Andreas Müller 12 months ago

  • Target version changed from Release 5.37 to Release 5.29
Actions #11

Updated by Andreas Müller 11 months ago

  • Copied to task #9944: Move further methods from DescriptionService to DescriptionElementService added
Actions #12

Updated by Andreas Müller 11 months ago

  • % Done changed from 50 to 90

I created a new ticket for moving further methods to the new service (#9944).

Can we close this ticket now?

Actions #13

Updated by Andreas Kohlbecker 11 months ago

  • Assignee changed from Andreas Kohlbecker to Andreas Müller

I think the method public Pager<Annotation> getDescriptionElementAnnotations() just duplicates the method public Pager<Annotation> getAnnotations() in the base class and therefore is redundant - We should remove it if I am right, or deprecate it and delegate all calls to getAnnotations

Aside from this the ticket can be closed.

Actions #14

Updated by Andreas Müller 11 months ago

  • Assignee changed from Andreas Müller to Andreas Kohlbecker

Good point. I removed the method from the service and from the 2 calling controllers and started new build. Can you please verify that everything works as expected for the webservices/dataportal and then close the ticket?

Actions #15

Updated by Andreas Kohlbecker 11 months ago

  • Assignee changed from Andreas Kohlbecker to Andreas Müller
  • % Done changed from 90 to 100

looks good now! Ticket can be closed.

The DescriptionElementController can now be modified like :

class DescriptionElementController extends AbstractIdentifiableController<DescriptionElementBase, IDescriptionElementService> 

This allows to remove the doGetDescriptionElementAnnotations() method which is provided bv the BaseController for free.
You may want to create a ticket for this it it does not exist

Actions #16

Updated by Andreas Müller 11 months ago

  • Copied to bug #9947: Make DescriptionElementController inherit from base controller and remove doGetDescriptionElementAnnotations added
Actions #17

Updated by Andreas Müller 11 months ago

  • Status changed from Feedback to Closed

Andreas Kohlbecker wrote in #note-15:

The DescriptionElementController can now be modified like :

class DescriptionElementController extends AbstractIdentifiableController<DescriptionElementBase, IDescriptionElementService> 

This allows to remove the doGetDescriptionElementAnnotations() method which is provided bv the BaseController for free.
You may want to create a ticket for this it it does not exist

I don't think it can inherit from AbstractIdentifiableController as it DescriptionElementBase is not Identifiable.

But I created a new ticket #9947 and already made the controller inherit from BaseController class.
All further discussions on this issue in the new ticket.

Actions

Also available in: Atom PDF