Issue 11765

Remove the superclass extension from the Occurrence class

11765
Reporter: lfrancke
Assignee: omeyn
Type: Improvement
Summary: Remove the superclass extension from the Occurrence class
Priority: Major
Resolution: Fixed
Status: Closed
Created: 2012-08-31 10:59:39.101
Updated: 2013-12-17 15:17:25.369
Resolved: 2012-10-08 09:05:58.588
        
Description: This is the class hierarchy: LinneanClassification -> LinneanClassificationWithKeys -> Occurrence

I think that's confusing especially because it violates the "is-a" principle of inheritance. An Occurrence "is a" LinneanClassification? No.

We could include a LinneanClassification in Occurrence or make that one an interface but this extends should be removed.]]>
    


Author: mdoering@gbif.org
Comment: if we reduce inheritance complexity in our models at least we need to maintain an interface for LinneanClassification and LinneanKeyClassification to guarantee substitutability and manage the shared classification properties between Occurrence & NameUsage. In the long run also some other classes in checklistbank proper need to use that interface (they use the base class now)
Created: 2012-08-31 11:51:11.312
Updated: 2012-08-31 11:52:17.732


Author: lfrancke@gbif.org
Comment: That is probably fine, yes.
Created: 2012-08-31 14:13:14.604
Updated: 2012-08-31 14:13:14.604


Author: mdoering@gbif.org
Created: 2012-10-03 23:26:20.242
Updated: 2012-10-03 23:26:20.242
        
While this is in progress, what are the latest conclusions here?
If we want less class hierarchies we should really embedd this change in a larger API refactoring, in particular including most of the registry models.