Project

General

Profile

« Previous | Next » 

Revision 17f0cc4b

Added by Helene Fradin over 14 years ago

CHANGES TO THE CDMLIB-MODEL: Media and DefinedTermBase become IdentifiableEntity, new classes to represent descriptive dataset and keys

  1. Media extends IdentifiableEntity
  2. addition of a ComparableTo method
  3. deletion of the redundant attribute 'rights'

  4. TermBase extends IdentifiableEntity

There was redundancy with 'implements Comparable' in OrderedTermBase and 'implements Comparable' in IdentifiableIdentity.

  • I erased « implements Comparable » dans OrderedTermBase
  • I completed it with a 'ghost' method CompareTo(Object)

public int compareTo(Object o) {
return 0;
}

  • I added the same 'ghost' CompareTo(Object) method to the following classes: BibtexEntryType, DerivationEventType, PreservationMethod, RightsTerm, NamedAreaType, ReferenceSystem, Feature, FeatureTree, MeasurementUnit, StatisticalMeasure, TextFormat, AnnotationType, ExtensionType, Language, MarkerType, TermVocabulary, InstitutionType
  1. adding OnlyApplicableIf / InapplicableIf to FeatureNode

private Set onlyApplicableIf = new HashSet();
private Set inapplicableIf = new HashSet();

with the associated get, add, remove methods.

These attributes are not direct equivalent for onlyApplicableIf and inapplicableIf in SDD as they are attached directly to the child feature rather than the parent feature, which allow having different inapplicability rules for each child feature.

  1. Creation of the WorkingSet class

public class WorkingSet extends AnnotatableEntity {

private Set representations = new HashSet();
...
private FeatureTree descriptiveSystem;
...
private Set descriptions = new HashSet();

}

  1. Completion of IidentificationKey interface

public interface IIdentificationKey {
    public Set getGeographicalScope();
    public void addGeographicalScope(NamedArea geographicalScope);
    public void removeGeographicalScope(NamedArea geographicalScope);
    public Set getTaxonomicScope();
    public void addTaxonomicScope(Taxon taxon);
    public void removeTaxonomicScope(Taxon taxon);
    public Set getScopeRestrictions();
    public Set getCoveredTaxa();
    public void addCoveredTaxon(Taxon taxon);
    public void removeCoveredTaxon(Taxon taxon);
}

I removed 'representations' as MultiAccessKey and PolytomousKey inherit it from their hierarchy. I added it to MediaKey (former IdentificationKey) under the name of keyRepresentations in order not to mix with the media representations.

  1. Modification of IdentificationKey in accordance (and renaming it to MediaKey with all the necessary modifications in concerned classes)
    public class MediaKey extends Media implements IIdentificationKey{

    private Set coveredTaxa = new HashSet();

    private Set geographicalScope = new HashSet();

    private Set taxonomicScope = new HashSet();

    private Set scopeRestrictions = new HashSet();

    private Set keyRepresentations = new HashSet();

    }

  2. Creation of the class MultiAccessKey

public class MultiAccessKey extends WorkingSet implements IIdentificationKey{
...
private Set coveredTaxa = new HashSet();
...
private Set taxonomicScope = new HashSet();
...
private Set geographicalScope = new HashSet();
...
private Set scopeRestrictions = new HashSet();
}

  1. Creation of PolytomousKey

public class PolytomousKey extends FeatureTree implements IIdentificationKey{
...
private Set coveredTaxa = new HashSet();
...
private Set taxonomicScope = new HashSet();

...
private Set geographicalScope = new HashSet();
...
private Set scopeRestrictions = new HashSet();
}

  1. Addition of the attribute 'result', 'question' and 'taxon' to FeatureNode so that a FeatureTree can store the identification path in the case of a polytomous key.

private DescriptionElementBase result;
private Set questions = new HashSet();
private Taxon taxon;

  • added
  • modified
  • copied
  • renamed
  • deleted