Project

General

Profile

Download (3.88 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2009 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.jaxb;
11

    
12
import com.sun.xml.bind.marshaller.NamespacePrefixMapper;
13

    
14
public class CdmNamespacePrefixMapper extends NamespacePrefixMapper {
15

    
16
	private static final String CDM_PREFIX = "";
17
	private static final String AGENT_PREFIX = "agent";
18
	private static final String COMMON_PREFIX = "common";
19
	private static final String DESCRIPTION_PREFIX = "description";
20
	private static final String LOCATION_PREFIX = "location";
21
	private static final String MEDIA_PREFIX = "media";
22
	private static final String MOLECULAR_PREFIX = "molecular";
23
	private static final String NAME_PREFIX = "name";
24
	private static final String OCCURRENCE_PREFIX = "occurrence";
25
	private static final String REFERENCE_PREFIX = "reference";
26
	private static final String TAXON_PREFIX = "taxon";
27
		
28
	public static final String CDM_NAMESPACE = "http://etaxonomy.eu/cdm/model/1.0";
29
	public static final String AGENT_NAMESPACE = "http://etaxonomy.eu/cdm/model/agent/1.0";
30
	public static final String COMMON_NAMESPACE = "http://etaxonomy.eu/cdm/model/common/1.0";
31
	public static final String DESCRIPTION_NAMESPACE = "http://etaxonomy.eu/cdm/model/description/1.0";
32
	public static final String LOCATION_NAMESPACE = "http://etaxonomy.eu/cdm/model/location/1.0";
33
	public static final String MEDIA_NAMESPACE = "http://etaxonomy.eu/cdm/model/media/1.0";
34
	public static final String MOLECULAR_NAMESPACE = "http://etaxonomy.eu/cdm/model/molecular/1.0";
35
	public static final String NAME_NAMESPACE = "http://etaxonomy.eu/cdm/model/name/1.0";
36
	public static final String OCCURRENCE_NAMESPACE = "http://etaxonomy.eu/cdm/model/occurrence/1.0";
37
	public static final String REFERENCE_NAMESPACE = "http://etaxonomy.eu/cdm/model/reference/1.0";
38
	public static final String TAXON_NAMESPACE = "http://etaxonomy.eu/cdm/model/taxon/1.0";
39
	
40
	public String getPreferredPrefix(String namespaceURI, String suggestion, boolean requirePrefix) {
41
		String result = suggestion;
42
		
43
		/**
44
		 * Returning empty namespace prefix works if a SAXResult is used, but not
45
		 * a DOMResult - see http://forums.java.net/jive/thread.jspa?messageID=217155
46
		 * This has not been resolved yet, as far as I can tell
47
		 */
48
		
49
		if(namespaceURI.equals(CdmNamespacePrefixMapper.CDM_NAMESPACE)) {
50
			return CdmNamespacePrefixMapper.CDM_PREFIX;
51
		}
52
		
53
		if(namespaceURI.equals(CdmNamespacePrefixMapper.AGENT_NAMESPACE)) {
54
			return CdmNamespacePrefixMapper.AGENT_PREFIX;
55
		}
56
		
57
		if(namespaceURI.equals(CdmNamespacePrefixMapper.COMMON_NAMESPACE)) {
58
			return CdmNamespacePrefixMapper.COMMON_PREFIX;
59
		}
60
		
61
		if(namespaceURI.equals(CdmNamespacePrefixMapper.DESCRIPTION_NAMESPACE)) {
62
			return CdmNamespacePrefixMapper.DESCRIPTION_PREFIX;
63
		}
64
		
65
		if(namespaceURI.equals(CdmNamespacePrefixMapper.LOCATION_NAMESPACE)) {
66
			return CdmNamespacePrefixMapper.LOCATION_PREFIX;
67
		}
68
		
69
		if(namespaceURI.equals(CdmNamespacePrefixMapper.MEDIA_NAMESPACE)) {
70
			return CdmNamespacePrefixMapper.MEDIA_PREFIX;
71
		}
72
		
73
		if(namespaceURI.equals(CdmNamespacePrefixMapper.MOLECULAR_NAMESPACE)){
74
			return CdmNamespacePrefixMapper.MOLECULAR_PREFIX;
75
		}
76
		
77
		if(namespaceURI.equals(CdmNamespacePrefixMapper.NAME_NAMESPACE)) {
78
			return CdmNamespacePrefixMapper.NAME_PREFIX;
79
		}
80
		
81
		if(namespaceURI.equals(CdmNamespacePrefixMapper.OCCURRENCE_NAMESPACE)) {
82
			return CdmNamespacePrefixMapper.OCCURRENCE_PREFIX;
83
		}
84
		
85
		if(namespaceURI.equals(CdmNamespacePrefixMapper.REFERENCE_NAMESPACE)) {
86
			return CdmNamespacePrefixMapper.REFERENCE_PREFIX;
87
		}
88
		
89
		if(namespaceURI.equals(CdmNamespacePrefixMapper.TAXON_NAMESPACE)) {
90
			return CdmNamespacePrefixMapper.TAXON_PREFIX;
91
		}
92
		
93
		return result;
94
	}
95

    
96
}
(3-3/16)