ref #7920: add predicate for area specicific status
authorKatja Luther <k.luther@bgbm.org>
Mon, 29 Apr 2019 10:19:18 +0000 (12:19 +0200)
committerKatja Luther <k.luther@bgbm.org>
Mon, 29 Apr 2019 10:20:38 +0000 (12:20 +0200)
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/metadata/CdmPreference.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/metadata/PreferencePredicate.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/metadata/PreferenceSubject.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/metadata/TermDisplayEnum.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/PreferenceDaoImpl.java

index ddc179123051e9575feb1343fd4b5167b55d09f4..8af33aac25530499d7c315b1f8f731c3fec21e87 100644 (file)
@@ -60,6 +60,11 @@ public final class CdmPreference implements Serializable {
             IPreferencePredicate<?> predicate, String value){
         return new CdmPreference(subject, predicate, value);
     }
+    
+    public static final CdmPreference NewInstance(PrefKey key, String value){
+        return new CdmPreference(key.subject, key.predicate, value);
+    }
+
 
 
     public static final CdmPreference NewInstance(PreferenceSubject subject, IPreferencePredicate<?> predicate, List<UUID> value){
@@ -162,7 +167,8 @@ public final class CdmPreference implements Serializable {
                 throw new IllegalArgumentException("Predicate must not be longer then 255 for preference");
             }
             if (!(subject.matches(PreferenceSubject.ROOT + "(([A-Za-z]+(\\[.*\\])?|"+PreferenceSubject.VAADIN+")"+PreferenceSubject.SEP+")*")
-                    || subject.matches(PreferenceSubject.ROOT + "(([A-Za-z]+(\\[.*\\])?|"+PreferenceSubject.TAX_EDITOR+")"+PreferenceSubject.SEP+")*"))){
+                    || subject.matches(PreferenceSubject.ROOT + "(([A-Za-z]+(\\[.*\\])?|"+PreferenceSubject.TAX_EDITOR+")"+PreferenceSubject.SEP+")*")
+                    || subject.matches(PreferenceSubject.ROOT + "(([A-Za-z]+(\\[.*\\])?|"+PreferenceSubject.DISTR_EDITOR+")"+PreferenceSubject.SEP+")*|(.*)"))){
                 throw new IllegalArgumentException("Subject does not follow the required syntax");
             }
 
index 1560ead4103dd8442bb3cb8f7b008f293346c177..50b8c2d9368b7bd69e1678221df3d000b5a7bcad 100644 (file)
@@ -37,7 +37,7 @@ public enum PreferencePredicate implements IEnumTerm<PreferencePredicate>, IPref
     //vaadin + distribution editor\r
        AvailableDistributionStatus(UUID.fromString("6721599e-686b-460e-9d57-cfd364f4b626"), "Available Distribution Status", "distribution.status.term", null),\r
        AvailableDistributionAreaVocabularies(UUID.fromString("dd1f35d5-dbf3-426b-9ed3-8b5992cb2e27"), "Available Distribution Area Vocabularies", "distribution.area.voc", null),\r
-       AvailableDistributionPerAreaStatus(UUID.fromString("b2f0c066-d5a4-4a91-9e19-0e58ec2849aa"), "Available Distribution Status Per Area", "distribution.status.area.term", null),\r
+       AvailableDistributionPerAreaStatus(UUID.fromString("b2f0c066-d5a4-4a91-9e19-0e58ec2849aa"), "Available Distribution Status Per Area", "distribution.status.term.area", null),\r
 \r
 \r
     //common name area vocabularies\r
index 7eee0c7bd20127d401b2ebcc7aa4f9d35a5af09d..08d0c26265f0365e21851b9d934417b07fae1cd2 100644 (file)
@@ -60,7 +60,7 @@ public class PreferenceSubject {
     public static PreferenceSubject NewInstance(PreferenceSubjectEnum subject){\r
         return new PreferenceSubject(ROOT +  subject.getKey() + SEP);\r
     }\r
-    protected static PreferenceSubject NewInstance(String subjectString){\r
+    public static PreferenceSubject NewInstance(String subjectString){\r
         return new PreferenceSubject(subjectString);\r
     }\r
 \r
index 825db34c887d55743367edcb82b760eec186ffa8..ebba516cd442569b103a63ff88bcea90520f1389 100755 (executable)
@@ -41,6 +41,6 @@ public enum TermDisplayEnum {
                 return termDisplay;
             }
         }
-        return null;
+        throw new IllegalArgumentException();
     }
 }
index 55a481e4f6e591070ec55691c93e8d21e7026992..167f7e7f41436ced80df0f0e8e992df8e2f115d8 100644 (file)
@@ -60,7 +60,7 @@ public class PreferenceDaoImpl extends DaoBase implements IPreferenceDao, Initia
                if (predicate == null ||\r
                        !preference.isAllowOverride() ||\r
                        !CdmUtils.nullSafeEqual(nullOrToString(predicate.getDefaultValue()), preference.getValue())){\r
-                   //do not save is value is default value with allow override\r
+                   //do not save if value is default value with allow override\r
                    getSession().save(preference);\r
                }\r
 \r