Project

General

Profile

Download (5 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.common.mapping;
11

    
12
import java.sql.ResultSet;
13
import java.sql.SQLException;
14
import java.util.UUID;
15

    
16
import org.apache.log4j.Logger;
17

    
18
import eu.etaxonomy.cdm.io.common.DbImportStateBase;
19
import eu.etaxonomy.cdm.model.common.ExtensionType;
20
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
21

    
22
/**
23
 * This class retrives or creates an existing or a new extension type.
24
 * 
25
 * @see DbImportDefinedTermCreationMapperBase
26
 * @author a.mueller
27
 * @since 11.03.2010
28
 * @version 1.0
29
 */
30
public class DbImportExtensionTypeCreationMapper<STATE extends DbImportStateBase<?,?>> extends DbImportDefinedTermCreationMapperBase<ExtensionType, IdentifiableEntity, DbImportStateBase<?,?>> {
31
	@SuppressWarnings("unused")
32
	private static final Logger logger = Logger.getLogger(DbImportExtensionTypeCreationMapper.class);
33

    
34
//******************************** FACTORY METHOD ***************************************************/
35

    
36
	
37
	/**
38
	 * 
39
	 * @param dbIdAttribute
40
	 * @parem extensionTypeNamespace
41
	 * @param dbTermAttribute
42
	 * @param dbLabelAttribute
43
	 * @param dbLabelAbbrevAttribute
44
	 * @return
45
	 */
46
	public static DbImportExtensionTypeCreationMapper<?> NewInstance(String dbIdAttribute, String extensionTypeNamespace, String dbTermAttribute, String dbLabelAttribute, String dbLabelAbbrevAttribute){
47
		return new DbImportExtensionTypeCreationMapper(dbIdAttribute, extensionTypeNamespace, dbTermAttribute, dbLabelAttribute, dbLabelAbbrevAttribute);
48
	}
49
	
50
	
51
//	/**
52
//	 * Creates a Distribution with status <code>status</code> and adds it to the description of a taxon. 
53
//	 * @param dbIdAttribute
54
//	 * @param objectToCreateNamespace
55
//	 * @param dbTaxonFkAttribute
56
//	 * @param taxonNamespace
57
//	 * @param status
58
//	 * @return
59
//	 */
60
//	public static DbImportFeatureCreationMapper<?> NewInstance(String dbIdAttribute, String dbTermAttribute, String dbLabelAttribute, String dbLabelAbbrevAttribute){
61
//		return new DbImportFeatureCreationMapper(dbIdAttribute, objectToCreateNamespace, dbTaxonFkAttribute, taxonNamespace, dbTextAttribute, language, feature, format);
62
//	}
63
	
64
//******************************* ATTRIBUTES ***************************************/
65

    
66
	
67
//********************************* CONSTRUCTOR ****************************************/
68

    
69
	/**
70
	 * @param dbIdAttribute
71
	 * @param extensionTypeNamespace
72
	 * @param dbTermAttribute
73
	 * @param dbLabelAttribute
74
	 * @param dbLabelAbbrevAttribute
75
	 */
76
	protected DbImportExtensionTypeCreationMapper(String dbIdAttribute, String extensionTypeNamespace, String dbTermAttribute, String dbLabelAttribute, String dbLabelAbbrevAttribute) {
77
		super(dbIdAttribute, extensionTypeNamespace, dbTermAttribute, dbLabelAttribute, dbLabelAbbrevAttribute);
78
	}
79

    
80
//************************************ METHODS *******************************************/
81

    
82
	/* (non-Javadoc)
83
	 * @see eu.etaxonomy.cdm.io.common.mapping.DbImportDefinedTermCreationMapperBase#getTermFromState(java.lang.String)
84
	 */
85
	@Override
86
	protected ExtensionType getTermFromState(UUID uuid) {
87
		return getState().getExtensionType(uuid);
88
	}
89

    
90

    
91
	/* (non-Javadoc)
92
	 * @see eu.etaxonomy.cdm.io.common.mapping.DbImportDefinedTermCreationMapperBase#getTermFromTransformer(java.sql.ResultSet)
93
	 */
94
	@Override
95
	protected ExtensionType getTermFromTransformer(String key, IInputTransformer transformer) throws UndefinedTransformerMethodException {
96
		return transformer.getExtensionTypeByKey(key);
97
	}
98

    
99

    
100
	/* (non-Javadoc)
101
	 * @see eu.etaxonomy.cdm.io.common.mapping.DbImportDefinedTermCreationMapperBase#getUuidFromTransformer(java.sql.ResultSet)
102
	 */
103
	@Override
104
	protected UUID getUuidFromTransformer(String key, IInputTransformer transformer) throws UndefinedTransformerMethodException {
105
		UUID uuid = transformer.getExtensionTypeUuid(key);
106
		return uuid;
107
	}
108

    
109

    
110
	/* (non-Javadoc)
111
	 * @see eu.etaxonomy.cdm.io.common.mapping.DbImportDefinedTermCreationMapperBase#saveTermToState(java.lang.String, eu.etaxonomy.cdm.model.common.DefinedTermBase)
112
	 */
113
	@Override
114
	protected void saveTermToState(ExtensionType extensionType) {
115
		getState().putExtensionType(extensionType);
116
		
117
	}
118

    
119

    
120
	/* (non-Javadoc)
121
	 * @see eu.etaxonomy.cdm.io.common.mapping.DbImportDefinedTermCreationMapperBase#createDefinedTerm(java.sql.ResultSet)
122
	 */
123
	@Override
124
	protected ExtensionType createDefinedTerm(ResultSet rs) throws SQLException {
125
		String term = this.getStringDbValue(rs, dbTermAttribute);
126
		String label = this.getStringDbValue(rs, dbLabelAttribute);
127
		String labelAbbrev = this.getStringDbValue(rs, dbLabelAbbrevAttribute);
128
		if (term != null || label != null || labelAbbrev != null){
129
			ExtensionType definedTerm = ExtensionType.NewInstance(term, label, labelAbbrev);
130
			return definedTerm;
131
		}else{
132
			return null;
133
		}
134
	
135
	}
136

    
137

    
138
}
(15-15/51)