Compiler error in Tcs
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / tcsxml / TcsXmlPublicationsIO.java
1 /**
2 *
3 */
4 package eu.etaxonomy.cdm.io.tcsxml;
5
6 import java.util.List;
7 import java.util.Map;
8
9 import org.apache.log4j.Logger;
10 import org.jdom.Element;
11 import org.jdom.Namespace;
12
13 import eu.etaxonomy.cdm.api.service.IReferenceService;
14 import eu.etaxonomy.cdm.common.DoubleResult;
15 import eu.etaxonomy.cdm.common.XmlHelp;
16 import eu.etaxonomy.cdm.io.common.ICdmIO;
17 import eu.etaxonomy.cdm.io.common.IImportConfigurator;
18 import eu.etaxonomy.cdm.io.common.ImportHelper;
19 import eu.etaxonomy.cdm.io.common.MapWrapper;
20 import eu.etaxonomy.cdm.model.common.CdmBase;
21 import eu.etaxonomy.cdm.model.reference.Generic;
22 import eu.etaxonomy.cdm.model.reference.ReferenceBase;
23
24 /**
25 * @author a.mueller
26 *
27 */
28 public class TcsXmlPublicationsIO extends TcsXmlIoBase implements ICdmIO {
29 private static final Logger logger = Logger.getLogger(TcsXmlPublicationsIO.class);
30
31 private static int modCount = 1000;
32
33 public TcsXmlPublicationsIO(){
34 super();
35 }
36
37 @Override
38 public boolean doCheck(IImportConfigurator config){
39 boolean result = true;
40 result &= checkArticlesWithoutJournal(config);
41 //result &= checkPartOfJournal(config);
42
43 return result;
44 }
45
46 private static boolean checkArticlesWithoutJournal(IImportConfigurator bmiConfig){
47 try {
48 boolean result = true;
49 //TODO
50 // result = firstRow = false;
51 // }
52 //
53 return result;
54 } catch (Exception e) {
55 e.printStackTrace();
56 return false;
57 }
58 }
59
60
61
62 @Override
63 public boolean doInvoke(IImportConfigurator config,
64 Map<String, MapWrapper<? extends CdmBase>> stores){
65
66 logger.info("start make Publications ...");
67 boolean success = true;
68 String childName;
69 boolean obligatory;
70
71 MapWrapper<ReferenceBase> referenceMap = (MapWrapper<ReferenceBase>)stores.get(ICdmIO.REFERENCE_STORE);
72 IReferenceService referenceService = config.getCdmAppController().getReferenceService();
73
74 TcsXmlImportConfigurator tcsConfig = (TcsXmlImportConfigurator)config;
75 Element elDataSet = getDataSetElement(tcsConfig);
76 Namespace tcsNamespace = tcsConfig.getTcsXmlNamespace();
77
78 DoubleResult<Element, Boolean> doubleResult;
79 childName = "Publications";
80 obligatory = false;
81 doubleResult = XmlHelp.getSingleChildElement(elDataSet, childName, tcsNamespace, obligatory);
82 success &= doubleResult.getSecondResult();
83 Element elPublications = doubleResult.getFirstResult();
84
85 String tcsElementName = "Publication";
86 String idNamespace = "Publication";
87 List<Element> elPublicationList = elPublications.getChildren(tcsElementName, tcsNamespace);
88
89 int i = 0;
90 //for each taxonName
91 for (Element elPublication : elPublicationList){
92 if ((++i % modCount) == 0){ logger.info("publications handled: " + (i-1));}
93
94 //create TaxonName element
95 String strId = elPublication.getAttributeValue("id");
96
97 childName = "Simple";
98 obligatory = true;
99 doubleResult = XmlHelp.getSingleChildElement(elPublication, childName, tcsNamespace, obligatory);
100 success &= doubleResult.getSecondResult();
101 Element elSimple = doubleResult.getFirstResult();
102
103 String simple = elSimple.getTextNormalize();
104 ReferenceBase reference = Generic.NewInstance();
105 reference.setTitleCache(simple);
106
107 childName = "PublicationDetailed";
108 obligatory = false;
109 doubleResult = XmlHelp.getSingleChildElement(elPublication, childName, tcsNamespace, obligatory);
110 success &= doubleResult.getSecondResult();
111 Element elPublicationDetailed = doubleResult.getFirstResult();
112
113 success &= tcsConfig.getPlaceholderClass().makePublicationDetailed(tcsConfig, elPublicationDetailed, reference);
114 ImportHelper.setOriginalSource(reference, config.getSourceReference(), strId, idNamespace);
115
116 referenceMap.put(strId, reference);
117
118
119 }
120 // //save and store in map
121 // logger.info("Save nomenclatural references (" + nomRefCount + ")");
122 // referenceService.saveReferenceAll(nomRefMap.objects());
123 logger.info("Save bibliographical references (" + i +")");
124 referenceService.saveReferenceAll(referenceMap.objects());
125
126 logger.info("end make publications ...");
127 return success;
128 }
129
130 /* (non-Javadoc)
131 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#isIgnore(eu.etaxonomy.cdm.io.common.IImportConfigurator)
132 */
133 protected boolean isIgnore(IImportConfigurator config){
134 return (config.getDoReferences() == IImportConfigurator.DO_REFERENCES.NONE);
135 }
136
137 }