latest changes to CdmXperBaseControler
authorAndreas Müller <a.mueller@bgbm.org>
Thu, 9 Aug 2012 00:56:19 +0000 (00:56 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Thu, 9 Aug 2012 00:56:19 +0000 (00:56 +0000)
XperCdmIntegration/src/main/java/eu/etaxonomy/cdm/io/xper/CdmXperBaseControler.java

index d71151fa555b7a80a11e5b1bcbd06e56a240d5b2..fbaf5097475825e9374a248a17420aec9f57f75d 100644 (file)
@@ -16,7 +16,6 @@ import org.apache.log4j.Logger;
 \r
 import eu.etaxonomy.cdm.model.description.Feature;\r
 import eu.etaxonomy.cdm.model.description.FeatureTree;\r
-import eu.etaxonomy.cdm.model.description.State;\r
 import eu.etaxonomy.cdm.model.description.WorkingSet;\r
 import fr_jussieu_snv_lis.XPApp;\r
 import fr_jussieu_snv_lis.base.Base;\r
@@ -27,6 +26,7 @@ import fr_jussieu_snv_lis.base.IControlerBase;
 import fr_jussieu_snv_lis.base.Individual;\r
 import fr_jussieu_snv_lis.base.Mode;\r
 import fr_jussieu_snv_lis.base.Variable;\r
+import fr_jussieu_snv_lis.utils.Utils;\r
 \r
 /**\r
  * @author a.mueller\r
@@ -426,8 +426,7 @@ public class CdmXperBaseControler extends ControlerBase implements IControlerBas
         * @see fr_jussieu_snv_lis.base.IControlerBase#matchModes(fr_jussieu_snv_lis.base.Individual, fr_jussieu_snv_lis.base.Variable, java.util.List, int)\r
         */\r
        @Override\r
-       public boolean matchModes(Individual ind, Variable var, List<Mode> modes,\r
-                       int operator) {\r
+       public boolean matchModes(Individual ind, Variable var, List<Mode> modes, int operator) {\r
                logger.warn("matchModes Not yet implemented");\r
                return false;\r
        }\r
@@ -448,7 +447,7 @@ public class CdmXperBaseControler extends ControlerBase implements IControlerBas
        public Mode createNewMode(Variable va, String name) {\r
                Mode newMode = new Mode(name);\r
                \r
-               boolean hasChanged = addModeToVariable(newMode, va); // Add the new Mode to the list f Mode of the Variable\r
+               boolean hasChanged = addModeToVariable(newMode, va); // Add the new Mode to the list of Mode of the Variable\r
 \r
                if (hasChanged){\r
                        XPApp.baseChanged = true;\r
@@ -462,8 +461,7 @@ public class CdmXperBaseControler extends ControlerBase implements IControlerBas
         * @see fr_jussieu_snv_lis.base.IControlerBase#controlModeExVariable(boolean, fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Mode)\r
         */\r
        @Override\r
-       public void controlModeExVariable(boolean selected, Variable v,\r
-                       Mode modeException) {\r
+       public void controlModeExVariable(boolean selected, Variable v, Mode modeException) {\r
                logger.warn("controlModeExVariable Not yet implemented");\r
 \r
        }\r
@@ -500,7 +498,7 @@ public class CdmXperBaseControler extends ControlerBase implements IControlerBas
         */\r
        @Override\r
        public void deleteIndividual(Individual ind) {\r
-               logger.warn("deleteIndividual Not yet implemented");\r
+               throw new RuntimeException("delete individual not supported by CDM version");\r
 \r
        }\r
 \r
@@ -631,8 +629,9 @@ public class CdmXperBaseControler extends ControlerBase implements IControlerBas
         * @see fr_jussieu_snv_lis.base.IControlerBase#checkUnknown(fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Individual, boolean, boolean)\r
         */\r
        @Override\r
-       public void checkUnknown(Variable var, Individual ind, boolean b, boolean withDaughters) {\r
-               super.checkUnknown(var, ind, b, withDaughters);\r
+       public void checkUnknown(Variable var, Individual ind, boolean value, boolean withDaughters) {\r
+               this.cdmXperAdapter.checkUnknown(var, ind, value, withDaughters);\r
+               super.checkUnknown(var, ind, value, withDaughters);\r
        }\r
 \r
        /* (non-Javadoc)\r
@@ -640,7 +639,7 @@ public class CdmXperBaseControler extends ControlerBase implements IControlerBas
         */\r
        @Override\r
        public void checkUnknown(Variable var, Individual[] tab, boolean b, boolean withDaughters) {\r
-               super.checkUnknown(var, tab, b, withDaughters);\r
+               super.checkUnknown(var, tab, b, withDaughters);  //super calls check unknown for each individual\r
        }\r
 \r
        /* (non-Javadoc)\r
@@ -701,9 +700,12 @@ public class CdmXperBaseControler extends ControlerBase implements IControlerBas
         * @see fr_jussieu_snv_lis.base.IControlerBase#changeMother(fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Variable)\r
         */\r
        @Override\r
-       public void changeMother(Variable current, Variable mother) {\r
-               logger.warn("changeMother Not yet implemented");\r
-\r
+       public void changeMother(Variable current, Variable newMother) {\r
+               //from super\r
+               super.removeMother(current);\r
+               super.addMother(current, newMother);\r
+               \r
+               getAdapter().moveFeature(current, newMother);\r
        }\r
 \r
        /* (non-Javadoc)\r
@@ -759,7 +761,7 @@ public class CdmXperBaseControler extends ControlerBase implements IControlerBas
         */\r
        @Override\r
        public boolean checkExistanceOneVariable(String s) {\r
-               logger.warn("checkExistanceOneVariable implemented as super");\r
+               logger.info("checkExistanceOneVariable implemented as super");\r
                return super.checkExistanceOneVariable(s);\r
        }\r
 \r
@@ -794,9 +796,25 @@ public class CdmXperBaseControler extends ControlerBase implements IControlerBas
         * @see fr_jussieu_snv_lis.base.IControlerBase#createNewVariable(java.lang.String)\r
         */\r
        @Override\r
-       public Variable createNewVariable(String name) {\r
-               logger.warn("createNewVariable Not yet implemented");\r
-               return null;\r
+       public Variable createNewCategoricalVariable(String name) {\r
+               Variable newVariable = new Variable(name); \r
+               newVariable.setType(Utils.catType);\r
+               newVariable.setUuid(UUID.randomUUID());\r
+\r
+               // By default, a new Variable has two Modes\r
+               //TODO Do we really need to add new modes immediately? SDD data sometimes do not have to states\r
+//             Mode mode1 = new Mode(XPApp.messages.getString("mode") + " 1");\r
+//             Mode mode2 = new Mode(XPApp.messages.getString("mode") + " 2");\r
+//             newVariable.addMode(mode1);\r
+//             newVariable.addMode(mode2);\r
+\r
+               base.addVariable(newVariable); // add the new Variable to the List of Variable of the Base\r
+               //TODO needed\r
+               XPApp.baseChanged = true;\r
+\r
+               this.cdmXperAdapter.createNewVariable(newVariable);\r
+               \r
+               return newVariable;\r
        }\r
 \r
        /* (non-Javadoc)\r
@@ -804,8 +822,18 @@ public class CdmXperBaseControler extends ControlerBase implements IControlerBas
         */\r
        @Override\r
        public Variable createNewVariableNumOrEnum(String name, String type) {\r
-               logger.warn("createNewVariableNumOrEnum Not yet implemented");\r
-               return null;\r
+               Variable newVariable = new Variable(name); \r
+               newVariable.setType(type);\r
+               newVariable.setUuid(UUID.randomUUID());\r
+               \r
+               base.addVariable(newVariable); // add the new Variable to the List of Variable of the Base\r
+               //TODO needed\r
+               XPApp.baseChanged = true;\r
+\r
+               this.cdmXperAdapter.createNewVariable(newVariable);\r
+                       \r
+               return newVariable;\r
+               \r
        }\r
 \r
        /* (non-Javadoc)\r
@@ -813,7 +841,8 @@ public class CdmXperBaseControler extends ControlerBase implements IControlerBas
         */\r
        @Override\r
        public void addNewVariableAndItsModesToMatrix(Variable newVariable) {\r
-               logger.warn("addNewVariableAndItsModesToMatrix Not yet implemented");\r
+               logger.warn("addNewVariableAndItsModesToMatrix still needs to add 'unknown data' as a value for the feature");\r
+               super.addNewVariableAndItsModesToMatrix(newVariable);\r
        }\r
 \r
        /* (non-Javadoc)\r
@@ -877,8 +906,7 @@ public class CdmXperBaseControler extends ControlerBase implements IControlerBas
         * @see fr_jussieu_snv_lis.base.IControlerBase#getVariableDescendant(java.util.List, fr_jussieu_snv_lis.base.Variable)\r
         */\r
        @Override\r
-       public List<Variable> getVariableDescendant(List<Variable> listDescendant,\r
-                       Variable v) {\r
+       public List<Variable> getVariableDescendant(List<Variable> listDescendant, Variable v) {\r
                logger.warn("getVariableDescendant Not yet implemented");\r
                return null;\r
        }\r