latest updated to Markup import
authorAndreas Müller <a.mueller@bgbm.org>
Mon, 5 Sep 2011 13:49:28 +0000 (13:49 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Mon, 5 Sep 2011 13:49:28 +0000 (13:49 +0000)
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/markup/MarkupDocumentImport.java

index 71271a5b9186a8622f0a595cb5f19c8fbcc3b1ae..e6368b0f24ea37016d7893448ecbfa5889e0ba2c 100644 (file)
@@ -2425,8 +2425,7 @@ public class MarkupDocumentImport extends MarkupImportBase implements ICdmIO<Mar
        // }\r
        // }\r
 \r
-       private void handleCitation(MarkupImportState state, XMLEventReader reader,\r
-                       XMLEvent parentEvent, NonViralName name) throws XMLStreamException {\r
+       private void handleCitation(MarkupImportState state, XMLEventReader reader,     XMLEvent parentEvent, NonViralName name) throws XMLStreamException {\r
                String classValue = getClassOnlyAttribute(parentEvent);\r
 \r
                state.setCitation(true);\r
@@ -2437,7 +2436,7 @@ public class MarkupDocumentImport extends MarkupImportBase implements ICdmIO<Mar
                        if (isMyEndingElement(next, parentEvent)) {\r
                                checkMandatoryElement(hasRefPart, parentEvent.asStartElement(),\r
                                                REF_PART);\r
-                               Reference reference = createReference(state, refMap, next);\r
+                               Reference<?> reference = createReference(state, refMap, next);\r
                                String microReference = refMap.get(DETAILS);\r
                                doCitation(state, name, classValue, reference, microReference,\r
                                                parentEvent);\r
@@ -2483,9 +2482,9 @@ public class MarkupDocumentImport extends MarkupImportBase implements ICdmIO<Mar
 \r
        }\r
 \r
-       private Reference createReference(MarkupImportState state, Map<String, String> refMap, XMLEvent parentEvent) {\r
+       private Reference<?> createReference(MarkupImportState state, Map<String, String> refMap, XMLEvent parentEvent) {\r
                // TODO\r
-               Reference reference;\r
+               Reference<?> reference;\r
 \r
                String type = getAndRemoveMapKey(refMap, PUBTYPE);\r
                String authorStr = getAndRemoveMapKey(refMap, AUTHOR);\r
@@ -2505,18 +2504,40 @@ public class MarkupDocumentImport extends MarkupImportBase implements ICdmIO<Mar
                                        journal.setTitle(pubName);\r
                                        article.setInJournal(journal);\r
                                }\r
-                               reference = (Reference) article;\r
+                               reference = (Reference<?>) article;\r
 \r
                        } else {\r
                                // TODO\r
-                               Reference bookOrPartOf = ReferenceFactory.newGeneric();\r
-                               reference = bookOrPartOf;\r
+                               if (pubName != null){\r
+                                       reference  = ReferenceFactory.newBookSection();\r
+                               }else{\r
+                                       reference = ReferenceFactory.newBook();\r
+                               }\r
                        }\r
                        // TODO use existing author from name or before\r
-                       TeamOrPersonBase author = createAuthor(authorStr);\r
+                       TeamOrPersonBase<?> author = createAuthor(authorStr);\r
                        reference.setAuthorTeam(author);\r
 \r
-               } else {\r
+                       reference.setTitle(titleStr);\r
+                       if (StringUtils.isNotBlank(titleCache)) {\r
+                               reference.setTitleCache(titleCache, true);\r
+                       }\r
+                       reference.setEdition(edition);\r
+                       reference.setEditor(editors);\r
+\r
+                       if (pubName != null) {\r
+                               Reference<?> inReference;\r
+                               if (reference.getType().equals(ReferenceType.Article)) {\r
+                                       inReference = ReferenceFactory.newJournal();\r
+                               } else {\r
+                                       inReference = ReferenceFactory.newGeneric();\r
+                               }\r
+                               inReference.setTitle(pubName);\r
+                               reference.setInReference(inReference);\r
+                       }\r
+\r
+                       \r
+               } else {  //no citation\r
                        if (volume != null || "journal".equalsIgnoreCase(type)) {\r
                                IArticle article = ReferenceFactory.newArticle();\r
                                if (pubName != null) {\r
@@ -2524,15 +2545,15 @@ public class MarkupDocumentImport extends MarkupImportBase implements ICdmIO<Mar
                                        journal.setTitle(pubName);\r
                                        article.setInJournal(journal);\r
                                }\r
-                               reference = (Reference) article;\r
+                               reference = (Reference<?>) article;\r
 \r
                        } else {\r
-                               Reference bookOrPartOf = ReferenceFactory.newGeneric();\r
+                               Reference<?> bookOrPartOf = ReferenceFactory.newGeneric();\r
                                reference = bookOrPartOf;\r
                        }\r
 \r
                        // TODO type\r
-                       TeamOrPersonBase author = createAuthor(authorStr);\r
+                       TeamOrPersonBase<?> author = createAuthor(authorStr);\r
                        reference.setAuthorTeam(author);\r
 \r
                        reference.setTitle(titleStr);\r
@@ -2543,7 +2564,7 @@ public class MarkupDocumentImport extends MarkupImportBase implements ICdmIO<Mar
                        reference.setEditor(editors);\r
 \r
                        if (pubName != null) {\r
-                               Reference inReference;\r
+                               Reference<?> inReference;\r
                                if (reference.getType().equals(ReferenceType.Article)) {\r
                                        inReference = ReferenceFactory.newJournal();\r
                                } else {\r
@@ -3088,16 +3109,56 @@ public class MarkupDocumentImport extends MarkupImportBase implements ICdmIO<Mar
                                state.putAreaUuid(areaName, area.getUuid());\r
                                \r
                                //TODO just for testing -> make generic and move to better place\r
+                               String geoServiceLayer="vmap0_as_bnd_political_boundary_a";\r
+                               String layerFieldName ="nam";\r
+                               \r
                                if ("Bangka".equals(areaName)){\r
-                                       String geoServiceLayer="vmap0_as_bnd_political_boundary_a";\r
-                                       String layerFieldName ="nam";\r
-                                       //TODO replace #\r
                                        String areaValue = "PULAU BANGKA#SUMATERA SELATAN";\r
                                        GeoServiceArea geoServiceArea = new GeoServiceArea();\r
                                        geoServiceArea.add(geoServiceLayer, layerFieldName, areaValue);\r
                                        this.editGeoService.setMapping(area, geoServiceArea);\r
 //                                     save(area, state);\r
                                }\r
+                               if ("Luzon".equals(areaName)){\r
+                                       GeoServiceArea geoServiceArea = new GeoServiceArea();\r
+                                       \r
+                                       List<String> list = Arrays.asList("HERMANA MAYOR ISLAND#CENTRAL LUZON",\r
+                                                       "HERMANA MENOR ISLAND#CENTRAL LUZON",\r
+                                                       "CENTRAL LUZON");\r
+                                       for (String areaValue : list){\r
+                                               geoServiceArea.add(geoServiceLayer, layerFieldName, areaValue);\r
+                                       }\r
+                                       \r
+                                       this.editGeoService.setMapping(area, geoServiceArea);\r
+//                                     save(area, state);\r
+                               }\r
+                               if ("Mindanao".equals(areaName)){\r
+                                       GeoServiceArea geoServiceArea = new GeoServiceArea();\r
+                                       \r
+                                       List<String> list = Arrays.asList("NORTHERN MINDANAO",\r
+                                                       "SOUTHERN MINDANAO",\r
+                                                       "WESTERN MINDANAO");\r
+                                       //TODO to be continued\r
+                                       for (String areaValue : list){\r
+                                               geoServiceArea.add(geoServiceLayer, layerFieldName, areaValue);\r
+                                       }\r
+                                       \r
+                                       this.editGeoService.setMapping(area, geoServiceArea);\r
+//                                     save(area, state);\r
+                               }\r
+                               if ("Palawan".equals(areaName)){\r
+                                       GeoServiceArea geoServiceArea = new GeoServiceArea();\r
+                                       \r
+                                       List<String> list = Arrays.asList("PALAWAN#SOUTHERN TAGALOG");\r
+                                       for (String areaValue : list){\r
+                                               geoServiceArea.add(geoServiceLayer, layerFieldName, areaValue);\r
+                                       }\r
+                                       \r
+                                       this.editGeoService.setMapping(area, geoServiceArea);\r
+//                                     save(area, state);\r
+                               }\r
+                               \r
+\r
                        }\r
                }\r
                return area;\r