Project

General

Profile

Download (4.9 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.common.CdmUtils;
20
import eu.etaxonomy.cdm.io.common.DbImportStateBase;
21
import eu.etaxonomy.cdm.model.common.Language;
22
import eu.etaxonomy.cdm.model.description.Feature;
23
import eu.etaxonomy.cdm.model.description.TextData;
24
import eu.etaxonomy.cdm.model.description.TextFormat;
25

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

    
38
//******************************** FACTORY METHOD ***************************************************/
39

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

    
69
	
70
//********************************* CONSTRUCTOR ****************************************/
71
	/**
72
	 * @param dbIdAttribute
73
	 * @param objectToCreateNamespace
74
	 * @param dbTaxonFkAttribute
75
	 * @param taxonNamespace
76
	 */
77
	protected DbImportFeatureCreationMapper(String dbIdAttribute, String featureNamespace, String dbTermAttribute, String dbLabelAttribute, String dbLabelAbbrevAttribute) {
78
		super(dbIdAttribute, featureNamespace, dbTermAttribute, dbLabelAttribute, dbLabelAbbrevAttribute);
79
	}
80

    
81
//************************************ METHODS *******************************************/
82

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

    
91

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

    
100

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

    
110

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

    
120

    
121

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

    
138

    
139
}
(14-14/40)