TypedEntityReference: factory method with option to supress the label & using this...
authorAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Tue, 12 Jan 2021 15:57:35 +0000 (16:57 +0100)
committerAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Tue, 12 Jan 2021 15:57:35 +0000 (16:57 +0100)
cdmlib-model/src/main/java/eu/etaxonomy/cdm/ref/TypedEntityReference.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/name/TypeDesignationSetFormatter.java

index fa1f096030127acf6b880979738f52bba7abb113..1d74126adda127c7a276d50c77bc33873ea1b5a7 100644 (file)
@@ -26,28 +26,40 @@ public class TypedEntityReference<T extends CdmBase> extends EntityReference {
 
     private Class<T> type;
 
+    /**
+     * @deprecated use factory method instead (TODO: to be made protected once no longer used publicly)
+     */
+    @Deprecated
     public TypedEntityReference(Class<T> type, UUID uuid, String label) {
         super(uuid, label);
         this.type = type;
     }
 
+    /**
+     * @deprecated use factory method instead (TODO; to be made protected once no longer used publicly)
+     */
+    @Deprecated
     public TypedEntityReference(Class<T> type, UUID uuid) {
         super(uuid, null);
         this.type = type;
     }
 
-    public static  <T extends CdmBase> TypedEntityReference<T> fromEntity(T entity) {
+    public static  <T extends CdmBase> TypedEntityReference<T> fromEntity(T entity, boolean withLabel) {
         if(entity == null) {
             return null;
         }
         entity = HibernateProxyHelper.deproxy(entity);
-        if(IdentifiableEntity.class.isAssignableFrom(entity.getClass())) {
+        if(withLabel && IdentifiableEntity.class.isAssignableFrom(entity.getClass())) {
             return new TypedEntityReference<T>((Class<T>)entity.getClass(), entity.getUuid(), ((IdentifiableEntity)entity).getTitleCache());
         } else {
             return new TypedEntityReference<T>((Class<T>)entity.getClass(), entity.getUuid());
         }
     }
 
+    public static  <T extends CdmBase> TypedEntityReference<T> fromEntity(T entity) {
+        return TypedEntityReference.fromEntity(entity, true);
+    }
+
     public Class<T> getType() {
         return type;
     }
index 46ce4e8cd719c913966d808786acf767cefa9767..e4cc40be25df26bf5512f6b6d75c09c28017ab0c 100644 (file)
@@ -87,7 +87,7 @@ public class TypeDesignationSetFormatter {
         TaggedTextBuilder finalBuilder = new TaggedTextBuilder();
 
         if(withNameIfAvailable && manager.getTypifiedNameCache() != null){
-            finalBuilder.add(TagEnum.name, manager.getTypifiedNameCache(), TypedEntityReference.fromEntity(manager.getTypifiedName()));
+            finalBuilder.add(TagEnum.name, manager.getTypifiedNameCache(), TypedEntityReference.fromEntity(manager.getTypifiedName(), false));
             finalBuilder.addPostSeparator(POST_NAME_SEPARTOR);
         }
 
@@ -189,7 +189,7 @@ public class TypeDesignationSetFormatter {
             workingsetBuilder.add(TagEnum.separator, TYPE_DESIGNATION_SEPARATOR);
         }
 
-        workingsetBuilder.add(TagEnum.typeDesignation, stringify(typeDes), TypedEntityReference.fromEntity(typeDes));
+        workingsetBuilder.add(TagEnum.typeDesignation, stringify(typeDes), TypedEntityReference.fromEntity(typeDes, false));
 //        workingsetBuilder.add(TagEnum.typeDesignation, typeDesignationEntityReference.getLabel(), typeDesignationEntityReference);
 
         if (withCitation){
@@ -226,7 +226,7 @@ public class TypeDesignationSetFormatter {
         if (ref != null){
             DefaultReferenceCacheStrategy strategy = ((DefaultReferenceCacheStrategy)ref.getCacheStrategy());
             String shortCitation = strategy.createShortCitation(ref, source.getCitationMicroReference(), false);
-            workingsetBuilder.add(TagEnum.reference, shortCitation, TypedEntityReference.fromEntity(ref));
+            workingsetBuilder.add(TagEnum.reference, shortCitation, TypedEntityReference.fromEntity(ref, false));
         }
     }