private static final UUID uuidIndividualsAssociation = UUID.fromString("e2308f37-ddc5-447d-b483-5e2171dd85fd");
public static final UUID uuidSpecimen = UUID.fromString("8200e050-d5fd-4cac-8a76-4b47afb13809");
private static final UUID uuidObservation = UUID.fromString("f59e747d-0b4f-4bf7-b69a-cbd50bc78595");
- private static final UUID uuidStatus = UUID.fromString("86d40635-2a63-4ad6-be75-9faa4a6a57fb");
+ public static final UUID uuidStatus = UUID.fromString("86d40635-2a63-4ad6-be75-9faa4a6a57fb");
private static final UUID uuidSystematics = UUID.fromString("bd9aca17-cd0e-4418-a3a1-1a4b80dbc162");
private static final UUID uuidUseRecord = UUID.fromString("8125a59d-b4d5-4485-89ea-67306297b599");
private static final UUID uuidNotes = UUID.fromString("b5780b45-6439-4f3c-9818-d89d26d36eb2");
import eu.etaxonomy.cdm.hibernate.search.GroupByTaxonClassBridge;
import eu.etaxonomy.cdm.hibernate.search.TaxonRelationshipClassBridge;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.IRelated;
import eu.etaxonomy.cdm.model.common.RelationshipBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.DescriptionType;
+import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.IDescribable;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
return result;
}
+ public void clearDescriptions() {
+ this.descriptions = new HashSet<>();
+ }
+
+ /**
+ * Compiles all description items attached to this taxon having the given feature
+ * and being of the given class. If feature or clazz is null no according filter
+ * is applied.
+ */
+ public <T extends DescriptionElementBase> Set<T> getDescriptionItems(Feature feature, Class<T> clazz) {
+ Set<T> result = new HashSet<>();
+ Set<TaxonDescription> descriptions = this.getDescriptions();
+ for (TaxonDescription description : descriptions) {
+ for (DescriptionElementBase deb : description.getElements()) {
+ if (clazz == null || deb.isInstanceOf(clazz)) {
+ if (feature == null || feature.equals(deb.getFeature())) {
+ T matchingDeb = CdmBase.deproxy(deb, clazz);
+ result.add(matchingDeb);
+ }
+ }
+ }
+ }
+ return result;
+ }
+
+ //*********************** CLONE ********************************************************/
/**
* Clones <i>this</i> taxon. This is a shortcut that enables to create
}*/
return result;
-
}
-
- public void clearDescriptions() {
- this.descriptions = new HashSet<>();
- }
-
-
}