1
2
3
4
5
6
7
8
9
10
11 package eu.etaxonomy.cdm.io.tcsrdf;
12
13 import org.apache.log4j.Logger;
14 import org.jdom.Content;
15 import org.jdom.Element;
16 import org.jdom.Namespace;
17
18 import eu.etaxonomy.cdm.io.berlinModel.CdmOneToManyMapper;
19 import eu.etaxonomy.cdm.io.common.mapping.IXmlMapper;
20 import eu.etaxonomy.cdm.io.common.mapping.CdmSingleAttributeMapperBase;
21 import eu.etaxonomy.cdm.model.common.CdmBase;
22
23
24
25
26
27
28 public class CdmOneToManyXmlMapper<ONE extends CdmBase, MANY extends CdmBase, SINGLE_MAPPER extends CdmSingleAttributeXmlMapperBase> extends
29 CdmOneToManyMapper<ONE, MANY, SINGLE_MAPPER> implements IXmlMapper{
30 @SuppressWarnings("unused")
31 private static final Logger logger = Logger.getLogger(CdmOneToManyXmlMapper.class);
32
33 public CdmOneToManyXmlMapper(Class<ONE> oneClass, Class<MANY> manyClass, String singleAttributeName, SINGLE_MAPPER[] singleAttributesMappers) {
34 super(oneClass, manyClass, singleAttributeName, singleAttributesMappers);
35 }
36
37
38
39
40
41 public boolean mapsSource(Content content, Element parentElement) {
42 if (! (content instanceof Element)){
43 return false;
44 }
45 Element element = (Element)content;
46 if (content == null){
47 return false;
48 }else if (! getSourceAttributes().contains(element.getName())){
49 return false;
50 }
51 for (String sourceElement: getSourceAttributeList()){
52 Namespace thisNamespace = getSourceNamespace(sourceElement, parentElement);
53 if (thisNamespace == null){
54 if (element.getNamespace() == null){
55 return true;
56 }
57 }else if (thisNamespace.equals(element.getNamespace())){
58 return true;
59 }
60 }
61 return false;
62 }
63
64
65
66
67
68
69
70
71
72 private Namespace getSourceNamespace(String sourceElement, Element parentElement){
73
74
75 return parentElement.getNamespace();
76 }
77
78 }