bugfixes for ReferenceFactory
authorAndreas Müller <a.mueller@bgbm.org>
Fri, 9 Jul 2010 13:37:29 +0000 (13:37 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Fri, 9 Jul 2010 13:37:29 +0000 (13:37 +0000)
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/reference/ReferenceFactory.java

index abb04c7336d944f3176fbd54a042f926100f1cab..04ad690e1b4f7a3461eb0061ec42b20c46c2ea06 100644 (file)
@@ -9,6 +9,8 @@
 \r
 package eu.etaxonomy.cdm.model.reference;\r
 \r
+import org.apache.log4j.Logger;\r
+\r
 import eu.etaxonomy.cdm.model.agent.Person;\r
 import eu.etaxonomy.cdm.model.common.TimePeriod;\r
 import eu.etaxonomy.cdm.strategy.cache.reference.ArticleDefaultCacheStrategy;\r
@@ -21,6 +23,7 @@ import eu.etaxonomy.cdm.strategy.cache.reference.ReferenceBaseDefaultCacheStrate
 import eu.etaxonomy.cdm.strategy.cache.reference.ThesisDefaultCacheStrategy;\r
 \r
 public class ReferenceFactory {\r
+       private static final Logger logger = Logger.getLogger(ReferenceFactory.class);\r
        \r
        \r
        /**\r
@@ -62,7 +65,7 @@ public class ReferenceFactory {
        }\r
        \r
        public static ReferenceBase newProceedings(){\r
-               ReferenceBase<ReferenceBaseDefaultCacheStrategy<ReferenceBase>> proceedings = new ReferenceBase<ReferenceBaseDefaultCacheStrategy<ReferenceBase>>(ReferenceType.InProceedings);\r
+               ReferenceBase<ReferenceBaseDefaultCacheStrategy<ReferenceBase>> proceedings = new ReferenceBase<ReferenceBaseDefaultCacheStrategy<ReferenceBase>>(ReferenceType.Proceedings);\r
                proceedings.setCacheStrategy(ReferenceType.Proceedings.getCacheStrategy());\r
                return proceedings;\r
        }\r
@@ -151,8 +154,16 @@ public class ReferenceFactory {
                return article;\r
        }\r
 \r
+       /**\r
+        * Returns a new reference for the according reference type. If reference type is <code>null</code>,\r
+        * <code>null</code> is returned.\r
+        * @param referenceType\r
+        * @return\r
+        */\r
        public static ReferenceBase newReference(ReferenceType referenceType) {\r
-               \r
+               if (referenceType == null){\r
+                       return null;\r
+               }\r
                switch(referenceType){\r
                        case Article:\r
                                return newArticle();\r
@@ -180,7 +191,14 @@ public class ReferenceFactory {
                                return newReport();\r
                        case Thesis:\r
                                return newThesis();\r
+                       case WebPage:\r
+                               return newWebPage();\r
+                       case Book:\r
+                               return newBook();\r
+                       case Generic:\r
+                               return newGeneric();\r
                        default:\r
+                               logger.warn("Unknown reference type " + referenceType.getMessage() + ". Created generic reference instead.");\r
                                return newGeneric();    \r
                }\r
        }\r