3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
11 package eu
.etaxonomy
.cdm
.io
.common
.mapping
;
13 import java
.sql
.ResultSet
;
14 import java
.sql
.SQLException
;
15 import java
.util
.UUID
;
17 import org
.apache
.log4j
.Logger
;
19 import eu
.etaxonomy
.cdm
.io
.common
.DbImportStateBase
;
20 import eu
.etaxonomy
.cdm
.model
.common
.ExtensionType
;
21 import eu
.etaxonomy
.cdm
.model
.common
.IdentifiableEntity
;
22 import eu
.etaxonomy
.cdm
.model
.common
.VersionableEntity
;
25 * This class retrives or creates an existing or a new extension type.
27 * @see DbImportDefinedTermCreationMapperBase
32 public class DbImportExtensionTypeCreationMapper
<STATE
extends DbImportStateBase
<?
,?
>> extends DbImportDefinedTermCreationMapperBase
<ExtensionType
, IdentifiableEntity
, DbImportStateBase
<?
,?
>> {
33 @SuppressWarnings("unused")
34 private static final Logger logger
= Logger
.getLogger(DbImportExtensionTypeCreationMapper
.class);
36 //******************************** FACTORY METHOD ***************************************************/
41 * @param dbIdAttribute
42 * @parem extensionTypeNamespace
43 * @param dbTermAttribute
44 * @param dbLabelAttribute
45 * @param dbLabelAbbrevAttribute
48 public static DbImportExtensionTypeCreationMapper
<?
> NewInstance(String dbIdAttribute
, String extensionTypeNamespace
, String dbTermAttribute
, String dbLabelAttribute
, String dbLabelAbbrevAttribute
){
49 return new DbImportExtensionTypeCreationMapper(dbIdAttribute
, extensionTypeNamespace
, dbTermAttribute
, dbLabelAttribute
, dbLabelAbbrevAttribute
);
54 // * Creates a Distribution with status <code>status</code> and adds it to the description of a taxon.
55 // * @param dbIdAttribute
56 // * @param objectToCreateNamespace
57 // * @param dbTaxonFkAttribute
58 // * @param taxonNamespace
62 // public static DbImportFeatureCreationMapper<?> NewInstance(String dbIdAttribute, String dbTermAttribute, String dbLabelAttribute, String dbLabelAbbrevAttribute){
63 // return new DbImportFeatureCreationMapper(dbIdAttribute, objectToCreateNamespace, dbTaxonFkAttribute, taxonNamespace, dbTextAttribute, language, feature, format);
66 //******************************* ATTRIBUTES ***************************************/
69 //********************************* CONSTRUCTOR ****************************************/
72 * @param dbIdAttribute
73 * @param extensionTypeNamespace
74 * @param dbTermAttribute
75 * @param dbLabelAttribute
76 * @param dbLabelAbbrevAttribute
78 protected DbImportExtensionTypeCreationMapper(String dbIdAttribute
, String extensionTypeNamespace
, String dbTermAttribute
, String dbLabelAttribute
, String dbLabelAbbrevAttribute
) {
79 super(dbIdAttribute
, extensionTypeNamespace
, dbTermAttribute
, dbLabelAttribute
, dbLabelAbbrevAttribute
);
82 //************************************ METHODS *******************************************/
85 * @see eu.etaxonomy.cdm.io.common.mapping.DbImportDefinedTermCreationMapperBase#getTermFromState(java.lang.String)
88 protected ExtensionType
getTermFromState(UUID uuid
) {
89 return getState().getExtensionType(uuid
);
94 * @see eu.etaxonomy.cdm.io.common.mapping.DbImportDefinedTermCreationMapperBase#getTermFromTransformer(java.sql.ResultSet)
97 protected ExtensionType
getTermFromTransformer(String key
, IInputTransformer transformer
) throws UndefinedTransformerMethodException
{
98 return transformer
.getExtensionTypeByKey(key
);
103 * @see eu.etaxonomy.cdm.io.common.mapping.DbImportDefinedTermCreationMapperBase#getUuidFromTransformer(java.sql.ResultSet)
106 protected UUID
getUuidFromTransformer(String key
, IInputTransformer transformer
) throws UndefinedTransformerMethodException
{
107 UUID uuid
= transformer
.getExtensionTypeUuid(key
);
113 * @see eu.etaxonomy.cdm.io.common.mapping.DbImportDefinedTermCreationMapperBase#saveTermToState(java.lang.String, eu.etaxonomy.cdm.model.common.DefinedTermBase)
116 protected void saveTermToState(ExtensionType extensionType
) {
117 getState().putExtensionType(extensionType
);
123 * @see eu.etaxonomy.cdm.io.common.mapping.DbImportDefinedTermCreationMapperBase#createDefinedTerm(java.sql.ResultSet)
126 protected ExtensionType
createDefinedTerm(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 ExtensionType definedTerm
= ExtensionType
.NewInstance(term
, label
, labelAbbrev
);