Project

General

Profile

Download (5.44 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy 
5
* http://www.e-taxonomy.eu
6
* 
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

    
11
package eu.etaxonomy.cdm.io.common.mapping;
12

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

    
17
import org.apache.log4j.Logger;
18

    
19
import eu.etaxonomy.cdm.io.common.DbImportStateBase;
20
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
21
import eu.etaxonomy.cdm.model.description.Feature;
22

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

    
35
//******************************** FACTORY METHOD ***************************************************/
36

    
37
	
38
	/**
39
	 * 
40
	 * @param dbIdAttribute
41
	 * @param dbTermAttribute
42
	 * @param dbLabelAttribute
43
	 * @param dbLabelAbbrevAttribute
44
	 * @return
45
	 */
46
	public static DbImportFeatureCreationMapper<?> NewInstance(String dbIdAttribute, String featureNamespace, String dbTermAttribute, String dbLabelAttribute, String dbLabelAbbrevAttribute){
47
		return new DbImportFeatureCreationMapper(dbIdAttribute, featureNamespace, 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
	 * @param dbIdAttribute
70
	 * @param objectToCreateNamespace
71
	 * @param dbTaxonFkAttribute
72
	 * @param taxonNamespace
73
	 */
74
	protected DbImportFeatureCreationMapper(String dbIdAttribute, String featureNamespace, String dbTermAttribute, String dbLabelAttribute, String dbLabelAbbrevAttribute) {
75
		super(dbIdAttribute, featureNamespace, dbTermAttribute, dbLabelAttribute, dbLabelAbbrevAttribute);
76
	}
77

    
78
//************************************ METHODS *******************************************/
79

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

    
88

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

    
97

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

    
107

    
108
	/* (non-Javadoc)
109
	 * @see eu.etaxonomy.cdm.io.common.mapping.DbImportDefinedTermCreationMapperBase#saveTermToState(java.lang.String, eu.etaxonomy.cdm.model.common.DefinedTermBase)
110
	 */
111
	@Override
112
	protected void saveTermToState(Feature feature) {
113
		getState().putFeature(feature);
114
		
115
	}
116

    
117

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

    
135

    
136
	/* (non-Javadoc)
137
	 * @see eu.etaxonomy.cdm.io.common.mapping.DbImportDefinedTermCreationMapperBase#createDefinedTerm(java.sql.ResultSet)
138
	 */
139
	@Override
140
	protected Feature createDefinedTerm(ResultSet rs) throws SQLException {
141
		String term = this.getStringDbValue(rs, dbTermAttribute);
142
		String label = this.getStringDbValue(rs, dbLabelAttribute);
143
		String labelAbbrev = this.getStringDbValue(rs, dbLabelAbbrevAttribute);
144
		if (term != null || label != null || labelAbbrev != null){
145
			Feature feature = Feature.NewInstance(term, label, labelAbbrev);
146
			return feature;
147
		}else{
148
			return null;
149
		}
150
	}
151

    
152

    
153
}
(16-16/51)