Project

General

Profile

Download (3.67 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* 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
package eu.etaxonomy.cdm.io.tcsxml;
11

    
12
import org.apache.log4j.Logger;
13
import org.jdom.Element;
14
import org.jdom.Namespace;
15

    
16
import eu.etaxonomy.cdm.common.ResultWrapper;
17
import eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator;
18
import eu.etaxonomy.cdm.model.common.TimePeriod;
19
import eu.etaxonomy.cdm.model.reference.Reference;
20
import eu.etaxonomy.cdm.strategy.parser.TimePeriodParser;
21

    
22
/**
23
 * @author a.mueller
24
 * @since 30.10.2008
25
 * @version 1.0
26
 */
27
public class DefaultTcsXmlPlaceholders implements ITcsXmlPlaceholderClass {
28
	private static final Logger logger = Logger.getLogger(DefaultTcsXmlPlaceholders.class);
29

    
30
	/* (non-Javadoc)
31
	 * @see tcsxml.ITcsXmlPlaceholderClass#makeMetaDataDetailed(tcsxml.TcsXmlImportConfigurator, org.jdom.Element)
32
	 */
33
	@Override
34
    public boolean makeMetaDataDetailed(TcsXmlImportConfigurator tcsConfig, Element elMetaDataDetailed){
35
		if (tcsConfig == null){
36
			return false;
37
		}
38
		if (elMetaDataDetailed == null){
39
			return true;
40
		}
41

    
42
		//Do nothing
43
		//TODO implement EDIT TcsMetaData extension
44
		logger.info("MetaDataElement found: " +  elMetaDataDetailed.getName());
45
		return true;
46
	}
47

    
48
	/* (non-Javadoc)
49
	 * @see tcsxml.ITcsXmlPlaceholderClass#makePublicationDetailed(tcsxml.TcsXmlImportConfigurator, org.jdom.Element, eu.etaxonomy.cdm.model.reference.Reference)
50
	 */
51
	@Override
52
    public boolean makePublicationDetailed(TcsXmlImportConfigurator config, Element elPublicationDetailed, Reference publication){
53
		ResultWrapper<Boolean> success = ResultWrapper.NewInstance(true);
54
		if (config == null){
55
			return false;
56
		}
57
		if (elPublicationDetailed == null){
58
			return true;
59
		}else{
60
			publication.setProtectedTitleCache(false);
61
		}
62

    
63
		String childName;
64
		Namespace tcsNs = config.getTcsXmlNamespace();
65
		for (Object o : elPublicationDetailed.getChildren()){
66
			Element element = (Element)o;
67
			String value = element.getTextNormalize();
68

    
69
			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
				TimePeriod datePublished = TimePeriodParser.parseString(value);
78
				publication.setDatePublished(datePublished);
79
				continue;
80
			}
81

    
82
			logger.warn("Unhandled Publication Detailed child element: " +  element.getName());
83

    
84
		}
85
//		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
//			TimePeriod datePublished = TimePeriodParser.parseString(strDatePublished);
100
//			publication.setDatePublished(datePublished);
101
//		}
102

    
103
		//Do nothing
104
		//TODO implement EDIT TcsMetaData extension
105
		if (logger.isDebugEnabled()){logger.debug("PublicationDetailed element found: " +  elPublicationDetailed.getName());}
106
		return success.getValue();
107
	}
108

    
109

    
110

    
111

    
112

    
113
}
(2-2/4)