make observer list modifiable #3825 (task1)
[cdmlib.git] / cdmlib-remote / src / main / java / eu / etaxonomy / cdm / remote / editor / MetadataPrefixEditor.java
index a11096153dad1ee3bc9a0994c94e42cf44211bb6..6ddc1998f70650d95faae7480aaa528fe0e0bfab 100644 (file)
@@ -2,26 +2,34 @@ package eu.etaxonomy.cdm.remote.editor;
 \r
 import java.beans.PropertyEditorSupport;\r
 \r
-import org.joda.time.DateTime;\r
-import org.joda.time.format.DateTimeFormatter;\r
-import org.joda.time.format.DateTimeFormatterBuilder;\r
+import eu.etaxonomy.cdm.remote.dto.oaipmh.MetadataPrefix;\r
+import eu.etaxonomy.cdm.remote.exception.CannotDisseminateFormatException;\r
 \r
 public class MetadataPrefixEditor extends PropertyEditorSupport {\r
-\r
-       private static DateTimeFormatter parser;\r
-       private static DateTimeFormatter printer;\r
-\r
-       static {\r
-               parser = new DateTimeFormatterBuilder().appendPattern("dd/MM/YYYY").appendOptional(new DateTimeFormatterBuilder().appendPattern(" HH:mm:ss").toParser()).toFormatter();\r
-               printer = new DateTimeFormatterBuilder().appendPattern("dd/MM/YYYY HH:mm:ss").toFormatter();\r
-       }\r
        \r
        public void setAsText(String text) {\r
-               setValue(parser.parseDateTime(text));\r
+               if(text == null) {\r
+                       throw new IllegalArgumentException("null is not an acceptable metadata format");\r
+               } else {\r
+                       MetadataPrefix metadatPrefix = MetadataPrefix.value(text);\r
+                       if(metadatPrefix  != null){\r
+                               setValue(metadatPrefix);\r
+\r
+//                     if(text.equals("rdf")) {\r
+//                             setValue(MetadataPrefix.RDF);\r
+//                     } else if(text.equals("oai_dc")) {\r
+//                             setValue(MetadataPrefix.OAI_DC);\r
+                       } else {\r
+                               throw new CannotDisseminateFormatException(text + " is not an acceptable metadata format");\r
+       }\r
+               }\r
        }\r
        \r
        public String getAsText() {\r
-               return printer.print((DateTime)getValue());\r
+               if(getValue() == null) {\r
+                       return null;\r
+               } else {\r
+                   return ((MetadataPrefix)getValue()).name();\r
+       }\r
        }\r
-\r
 }\r