Merge branch 'release/5.11.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / NameDetailsConfigurator.java
index 6ae24098c52f2e568c5ae38f911f08636affb98e..d5db7462be35be9030024f067db7c8450ce8b62f 100644 (file)
@@ -8,6 +8,8 @@
 */
 package eu.etaxonomy.taxeditor.preference;
 
+import java.lang.reflect.Field;
+
 /**
  * @author k.luther
  * @date 16.12.2016
@@ -15,40 +17,44 @@ package eu.etaxonomy.taxeditor.preference;
  */
 public class NameDetailsConfigurator {
 
-    private boolean isAllowOverride = true;
-    private boolean isSimpleDetailsViewActivated = true;
-
-    private boolean isTaxonSectionActivated = true;
-    private boolean isLSIDActivated = true;
-    private boolean isNomenclaturalCodeActived = true;
-    private boolean isNameCacheActivated = true;
-    private boolean isAppendedPhraseActivated = true;
-    private boolean isRankActivated = true;
-    private boolean isAtomisedEpithetsActivated = true;
-    private boolean isAuthorshipSectionActivated = true;
-    private boolean isAuthorCacheActivated = true;
-    private boolean isNomenclaturalReferenceSectionActivated = true;
-    private boolean isNomenclaturalStatusSectionActivated = true;
-    private boolean isTypeDesignationSectionActivated = true;
-    private boolean isNameRelationsSectionActivated = true;
-    private boolean isProtologueActivated = true;
-    private boolean isHybridActivated = true;
-
-       private boolean isNameApprobiationActivated = true;
-       private boolean isSecEnabled = true;
-       private boolean isSecDetailsActivated = true;
-
-    public NameDetailsConfigurator(boolean isSimpleDetailsViewActivated){
-        this.isSimpleDetailsViewActivated = isSimpleDetailsViewActivated;
-    }
-
-    public boolean isSimpleDetailsViewActivated() {
-        return isSimpleDetailsViewActivated;
-    }
-
-    public void setSimpleDetailsViewActivated(boolean isSimpleDetailsViewActivated) {
-        this.isSimpleDetailsViewActivated = isSimpleDetailsViewActivated;
-    }
+    boolean isAllowOverride = true;
+
+
+    boolean isTaxonSectionActivated = true;
+    boolean isLSIDActivated = true;
+    boolean isNomenclaturalCodeActived = true;
+    boolean isNameCacheActivated = true;
+    boolean isAppendedPhraseActivated = true;
+    boolean isRankActivated = true;
+    boolean isAtomisedEpithetsActivated = true;
+    boolean isAuthorshipSectionActivated = true;
+    boolean isAuthorCacheActivated = true;
+    boolean isNomenclaturalReferenceSectionActivated = true;
+    boolean isNomenclaturalStatusSectionActivated = true;
+    boolean isNomenclaturalStatusRuleConsideredActivated = true;
+    boolean isNomenclaturalStatusRuleConsideredCodeEditionActivated = true;
+    boolean isTypeDesignationSectionActivated = true;
+    boolean isNameRelationsSectionActivated = true;
+    boolean isNameRelationsRuleConsideredActivated = true;
+    boolean isNameRelationsRuleConsideredCodeEditionActivated = true;
+    boolean isProtologueActivated = true;
+    boolean isHybridActivated = true;
+
+       boolean isNameApprobiationActivated = true;
+       boolean isSecEnabled = true;
+       boolean isSecDetailsActivated = true;
+
+//    public NameDetailsConfigurator(boolean isSimpleDetailsViewActivated){
+//        this.isSimpleDetailsViewActivated = isSimpleDetailsViewActivated;
+//    }
+//
+//    public boolean isSimpleDetailsViewActivated() {
+//        return isSimpleDetailsViewActivated;
+//    }
+//
+//    public void setSimpleDetailsViewActivated(boolean isSimpleDetailsViewActivated) {
+//        this.isSimpleDetailsViewActivated = isSimpleDetailsViewActivated;
+//    }
 
     public boolean isTaxonSectionActivated() {
         return isTaxonSectionActivated;
@@ -165,83 +171,110 @@ public class NameDetailsConfigurator {
         StringBuffer result = new StringBuffer();
       //the preference value is build like this:
         //<section1>:true;<section2>:false....
-        result.append("simpleViewActivated");
-        result.append(":");
-        result.append(this.isSimpleDetailsViewActivated);
-        result.append(";");
-
-        result.append("taxon");
-        result.append(":");
-        result.append(this.isTaxonSectionActivated);
-        result.append(";");
-        result.append("taxon.SecEnabled");
-        result.append(":");
-        result.append(this.isSecEnabled);
-        result.append(";");
-        result.append("taxon.SecDetails");
-        result.append(":");
-        result.append(this.isSecDetailsActivated);
-        result.append(";");
-        result.append("nameCache");
-        result.append(":");
-        result.append(this.isNameCacheActivated);
-        result.append(";");
-        result.append("lsid");
-        result.append(":");
-        result.append(this.isLSIDActivated());
-        result.append(";");
-        result.append("nameApproviation");
-        result.append(":");
-        result.append(this.isNameApprobiationActivated());
-        result.append(";");
-        result.append("nc");
-        result.append(":");
-        result.append(this.isNomenclaturalCodeActived());
-        result.append(";");
-        result.append("ap");
-        result.append(":");
-        result.append(this.isAppendedPhraseActivated());
-        result.append(";");
-        result.append("rank");
-        result.append(":");
-        result.append(this.isRankActivated());
-        result.append(";");
-        result.append("author");
-        result.append(":");
-        result.append(this.isAuthorshipSectionActivated());
-        result.append(";");
-        result.append("authorCache");
-        result.append(":");
-        result.append(this.isAuthorCacheActivated());
-        result.append(";");
-        result.append("atomisedEpithets");
-        result.append(":");
-        result.append(this.isAtomisedEpithetsActivated());
-        result.append(";");
-        result.append("nomRef");
-        result.append(":");
-        result.append(this.isNomenclaturalReferenceSectionActivated());
-        result.append(";");
-        result.append("nomStat");
-        result.append(":");
-        result.append(this.isNomenclaturalStatusSectionActivated());
-        result.append(";");
-        result.append("protologue");
-        result.append(":");
-        result.append(this.isProtologueActivated());
-        result.append(";");
-        result.append("typeDes");
-        result.append(":");
-        result.append(this.isTypeDesignationSectionActivated());
-        result.append(";");
-        result.append("nameRelation");
-        result.append(":");
-        result.append(this.isNameRelationsSectionActivated());
-        result.append(";");
-        result.append("hybrid");
-        result.append(":");
-        result.append(this.isHybridActivated());
-
+        for (Field field: this.getClass().getDeclaredFields()){
+            result.append(field.getName());
+            result.append(":");
+            try {
+                result.append(field.get(this));
+            } catch (IllegalArgumentException | IllegalAccessException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+            result.append(";");
+        }
+//        result.append("simpleViewActivated");
+//        result.append(":");
+//        result.append(this.isSimpleDetailsViewActivated);
+//        result.append(";");
+//
+//        result.append("taxon");
+//        result.append(":");
+//        result.append(this.isTaxonSectionActivated);
+//        result.append(";");
+//        result.append("taxon.SecEnabled");
+//        result.append(":");
+//        result.append(this.isSecEnabled);
+//        result.append(";");
+//        result.append("taxon.SecDetails");
+//        result.append(":");
+//        result.append(this.isSecDetailsActivated);
+//        result.append(";");
+//        result.append("nameCache");
+//        result.append(":");
+//        result.append(this.isNameCacheActivated);
+//        result.append(";");
+//        result.append("lsid");
+//        result.append(":");
+//        result.append(this.isLSIDActivated());
+//        result.append(";");
+//        result.append("nameApproviation");
+//        result.append(":");
+//        result.append(this.isNameApprobiationActivated());
+//        result.append(";");
+//        result.append("nc");
+//        result.append(":");
+//        result.append(this.isNomenclaturalCodeActived());
+//        result.append(";");
+//        result.append("ap");
+//        result.append(":");
+//        result.append(this.isAppendedPhraseActivated());
+//        result.append(";");
+//        result.append("rank");
+//        result.append(":");
+//        result.append(this.isRankActivated());
+//        result.append(";");
+//        result.append("author");
+//        result.append(":");
+//        result.append(this.isAuthorshipSectionActivated());
+//        result.append(";");
+//        result.append("authorCache");
+//        result.append(":");
+//        result.append(this.isAuthorCacheActivated());
+//        result.append(";");
+//        result.append("atomisedEpithets");
+//        result.append(":");
+//        result.append(this.isAtomisedEpithetsActivated());
+//        result.append(";");
+//        result.append("nomRef");
+//        result.append(":");
+//        result.append(this.isNomenclaturalReferenceSectionActivated());
+//        result.append(";");
+//        result.append("nomStat");
+//        result.append(":");
+//        result.append(this.isNomenclaturalStatusSectionActivated());
+//        result.append(";");
+//        result.append("nomStatRuleConsidered");
+//        result.append(":");
+//        result.append(this.isNomenclaturalStatusRuleConsideredActivated);
+//        result.append(";");
+//        result.append("nomStatRuleConsideredCodeEdition");
+//        result.append(":");
+//        result.append(this.isNomenclaturalStatusRuleConsideredCodeEditionActivated);
+//        result.append(";");
+//        result.append("protologue");
+//        result.append(":");
+//        result.append(this.isProtologueActivated());
+//        result.append(";");
+//        result.append("typeDes");
+//        result.append(":");
+//        result.append(this.isTypeDesignationSectionActivated());
+//        result.append(";");
+//        result.append("nameRelation");
+//        result.append(":");
+//        result.append(this.isNameRelationsSectionActivated());
+//        result.append(";");
+//        result.append("nameRelationRuleConsidered");
+//        result.append(":");
+//        result.append(this.isNameRelationsRuleConsideredActivated);
+//        result.append(";");
+//        result.append("nameRelationRuleConsideredCodeEdition");
+//        result.append(":");
+//        result.append(this.isNameRelationsRuleConsideredCodeEditionActivated);
+//        result.append(";");
+//        result.append("hybrid");
+//        result.append(":");
+//        result.append(this.isHybridActivated());
+      result.replace(result.length()-1, result.length(), "");
       return result.toString();
     }
 
@@ -302,4 +335,49 @@ public class NameDetailsConfigurator {
         this.isSecDetailsActivated = isSecDetailsActivated;
     }
 
+    public boolean isNameRelationsRuleConsideredActivated() {
+        return isNameRelationsRuleConsideredActivated;
+    }
+
+    public void setNameRelationsRuleConsideredActivated(boolean isRuleConsideredActivated) {
+        this.isNameRelationsRuleConsideredActivated = isRuleConsideredActivated;
+    }
+
+    public boolean isNameRelationsRuleConsideredCodeEditionActivated() {
+        return isNameRelationsRuleConsideredCodeEditionActivated;
+    }
+
+    public void setNameRelationsRuleConsideredCodeEditionActivated(boolean isRuleConsideredCodeEditionActivated) {
+        this.isNameRelationsRuleConsideredCodeEditionActivated = isRuleConsideredCodeEditionActivated;
+    }
+
+    public boolean isNomenclaturalStatusRuleConsideredActivated() {
+        return isNomenclaturalStatusRuleConsideredActivated;
+    }
+
+    public void setNomenclaturalStatusRuleConsideredActivated(boolean isRuleConsideredActivated) {
+        this.isNomenclaturalStatusRuleConsideredActivated = isRuleConsideredActivated;
+    }
+
+    public boolean isNomenclaturalStatusRuleConsideredCodeEditionActivated() {
+        return isNomenclaturalStatusRuleConsideredCodeEditionActivated;
+    }
+
+    public void setNomenclaturalStatusRuleConsideredCodeEditionActivated(boolean isRuleConsideredCodeEditionActivated) {
+        this.isNomenclaturalStatusRuleConsideredCodeEditionActivated = isRuleConsideredCodeEditionActivated;
+    }
+
+
+    public boolean isDefault(){
+        boolean result = true;
+        for (Field field: this.getClass().getDeclaredFields()){
+           try {
+            result = result &&field.getBoolean(this);
+        } catch (IllegalArgumentException | IllegalAccessException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        }
+        return result;
+    }
 }