Project

General

Profile

Download (3.67 KB) Statistics
| Branch: | Tag: | Revision:
1 d53cdc9e Andreas Müller
/**
2
* Copyright (C) 2007 EDIT
3 a897c436 Andreas Müller
* European Distributed Institute of Taxonomy
4 d53cdc9e Andreas Müller
* http://www.e-taxonomy.eu
5 a897c436 Andreas Müller
*
6 d53cdc9e Andreas Müller
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
10 f64976cc Andreas Müller
package eu.etaxonomy.cdm.io.tcsxml;
11 d53cdc9e Andreas Müller
12
import org.apache.log4j.Logger;
13
import org.jdom.Element;
14 ec12cc39 Andreas Müller
import org.jdom.Namespace;
15 d53cdc9e Andreas Müller
16 ec12cc39 Andreas Müller
import eu.etaxonomy.cdm.common.ResultWrapper;
17 b7467fbe Andreas Müller
import eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator;
18 ec12cc39 Andreas Müller
import eu.etaxonomy.cdm.model.common.TimePeriod;
19 1d36aa54 Andreas Müller
import eu.etaxonomy.cdm.model.reference.Reference;
20 3a1cd9fb Andreas Müller
import eu.etaxonomy.cdm.strategy.parser.TimePeriodParser;
21 d53cdc9e Andreas Müller
22
/**
23
 * @author a.mueller
24 a88578ce Andreas Müller
 * @since 30.10.2008
25 d53cdc9e Andreas Müller
 * @version 1.0
26
 */
27
public class DefaultTcsXmlPlaceholders implements ITcsXmlPlaceholderClass {
28
	private static final Logger logger = Logger.getLogger(DefaultTcsXmlPlaceholders.class);
29 a897c436 Andreas Müller
30 d53cdc9e Andreas Müller
	/* (non-Javadoc)
31
	 * @see tcsxml.ITcsXmlPlaceholderClass#makeMetaDataDetailed(tcsxml.TcsXmlImportConfigurator, org.jdom.Element)
32
	 */
33 a897c436 Andreas Müller
	@Override
34
    public boolean makeMetaDataDetailed(TcsXmlImportConfigurator tcsConfig, Element elMetaDataDetailed){
35 d53cdc9e Andreas Müller
		if (tcsConfig == null){
36
			return false;
37
		}
38
		if (elMetaDataDetailed == null){
39
			return true;
40
		}
41 a897c436 Andreas Müller
42 d53cdc9e Andreas Müller
		//Do nothing
43
		//TODO implement EDIT TcsMetaData extension
44
		logger.info("MetaDataElement found: " +  elMetaDataDetailed.getName());
45
		return true;
46
	}
47
48
	/* (non-Javadoc)
49 1d36aa54 Andreas Müller
	 * @see tcsxml.ITcsXmlPlaceholderClass#makePublicationDetailed(tcsxml.TcsXmlImportConfigurator, org.jdom.Element, eu.etaxonomy.cdm.model.reference.Reference)
50 d53cdc9e Andreas Müller
	 */
51 a897c436 Andreas Müller
	@Override
52
    public boolean makePublicationDetailed(TcsXmlImportConfigurator config, Element elPublicationDetailed, Reference publication){
53 ec12cc39 Andreas Müller
		ResultWrapper<Boolean> success = ResultWrapper.NewInstance(true);
54
		if (config == null){
55 d53cdc9e Andreas Müller
			return false;
56
		}
57
		if (elPublicationDetailed == null){
58
			return true;
59 5693f6f2 Andreas Müller
		}else{
60
			publication.setProtectedTitleCache(false);
61 d53cdc9e Andreas Müller
		}
62 a897c436 Andreas Müller
63 5693f6f2 Andreas Müller
		String childName;
64
		Namespace tcsNs = config.getTcsXmlNamespace();
65
		for (Object o : elPublicationDetailed.getChildren()){
66
			Element element = (Element)o;
67
			String value = element.getTextNormalize();
68 a897c436 Andreas Müller
69 5693f6f2 Andreas Müller
			childName = "Title";
70
			if (element.getName().equalsIgnoreCase(childName) && element.getNamespace().equals(tcsNs)){
71
				publication.setTitle(value);
72
				continue;
73
			}
74
75
			childName = "DatePublished";
76
			if (element.getName().equalsIgnoreCase(childName) && element.getNamespace().equals(tcsNs)){
77 3a1cd9fb Andreas Müller
				TimePeriod datePublished = TimePeriodParser.parseString(value);
78 5693f6f2 Andreas Müller
				publication.setDatePublished(datePublished);
79
				continue;
80
			}
81 a897c436 Andreas Müller
82 5693f6f2 Andreas Müller
			logger.warn("Unhandled Publication Detailed child element: " +  element.getName());
83 a897c436 Andreas Müller
84 ec12cc39 Andreas Müller
		}
85 5693f6f2 Andreas Müller
//		String childName = "Title";
86
//		boolean obligatory = false;
87
//		Element elTitle = XmlHelp.getSingleChildElement(success, elPublicationDetailed, childName, ns, obligatory);
88
//		if (elTitle != null){
89
//			String strTitle = elTitle.getTextNormalize();
90
//			publication.setTitle(strTitle);
91
//		}
92
93
//		childName = "DatePublished";
94
//		obligatory = false;
95
//		ns = config.getTcsXmlNamespace();
96
//		Element elDatePublished = XmlHelp.getSingleChildElement(success, elPublicationDetailed, childName, ns, obligatory);
97
//		if (elDatePublished != null){
98
//			String strDatePublished = elDatePublished.getTextNormalize();
99 3a1cd9fb Andreas Müller
//			TimePeriod datePublished = TimePeriodParser.parseString(strDatePublished);
100 5693f6f2 Andreas Müller
//			publication.setDatePublished(datePublished);
101
//		}
102 a897c436 Andreas Müller
103 d53cdc9e Andreas Müller
		//Do nothing
104
		//TODO implement EDIT TcsMetaData extension
105 3f169e61 Andreas Müller
		if (logger.isDebugEnabled()){logger.debug("PublicationDetailed element found: " +  elPublicationDetailed.getName());}
106 ec12cc39 Andreas Müller
		return success.getValue();
107 d53cdc9e Andreas Müller
	}
108 a897c436 Andreas Müller
109
110
111
112 d53cdc9e Andreas Müller
113
}