* \r
* @author a.mueller\r
* @created 20.03.2008\r
- * @version 1.0\r
*/\r
@Component\r
public class BerlinModelCommonNamesImport extends BerlinModelImportBase {\r
}\r
\r
\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.berlinModel.in.IPartitionedIO#doPartition(eu.etaxonomy.cdm.io.berlinModel.in.ResultSetPartitioner, eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportState)\r
- */\r
+ @Override\r
public boolean doPartition(ResultSetPartitioner partitioner, BerlinModelImportState state) {\r
boolean success = true ;\r
BerlinModelImportConfigurator config = state.getConfig();\r
String[] regionFkSplit = regionFks.split(",");\r
\r
//commonNameString\r
- if (CdmUtils.isBlank(commonNameString)){\r
+ if (isBlank(commonNameString)){\r
String message = "CommonName is empty or null. Do not import record for taxon " + taxonId;\r
logger.warn(message);\r
continue;\r
\r
//taxon\r
Taxon taxon = null;\r
- TaxonBase taxonBase = taxonMap.get(String.valueOf(taxonId));\r
+ TaxonBase<?> taxonBase = taxonMap.get(String.valueOf(taxonId));\r
if (taxonBase == null){\r
logger.warn("Taxon (" + taxonId + ") could not be found. Common name " + commonNameString + "(" + commonNameId + ") not imported");\r
continue;\r
\r
//reference extensions\r
if (reference != null){\r
- if (CdmUtils.isNotEmpty(refLanguage)){\r
+ if (StringUtils.isNotBlank(refLanguage)){\r
ExtensionType refLanguageExtensionType = getExtensionType( state, REFERENCE_LANGUAGE_STRING_UUID, "reference language","The language of the reference","ref. lang.");\r
Extension.NewInstance(reference, refLanguage, refLanguageExtensionType);\r
}\r
\r
- if (CdmUtils.isNotEmpty(refLanguageIso639_2)){\r
+ if (StringUtils.isNotBlank(refLanguageIso639_2)){\r
ExtensionType refLanguageIsoExtensionType = getExtensionType( state, REFERENCE_LANGUAGE_ISO639_2_UUID, "reference language iso 639-2","The iso 639-2 code of the references language","ref. lang. 639-2");\r
Extension.NewInstance(reference, refLanguageIso639_2, refLanguageIsoExtensionType);\r
}\r
- }else if (CdmUtils.isNotEmpty(refLanguage) || CdmUtils.isNotEmpty(refLanguageIso639_2)){\r
+ }else if (isNotBlank(refLanguage) || isNotBlank(refLanguageIso639_2)){\r
logger.warn("Reference is null (" + languageRefRefFk + ") but refLanguage (" + CdmUtils.Nz(refLanguage) + ") or iso639_2 (" + CdmUtils.Nz(refLanguageIso639_2) + ") was not null for common name ("+ commonNameId +")");\r
}\r
\r
//status\r
- if (CdmUtils.isNotEmpty(status)){\r
+ if (isNotBlank(status)){\r
AnnotationType statusAnnotationType = getAnnotationType( state, STATUS_ANNOTATION_UUID, "status","The status of this object","status", null);\r
Annotation annotation = Annotation.NewInstance(status, statusAnnotationType, Language.DEFAULT());\r
for (CommonTaxonName commonTaxonName : commonTaxonNames){\r
*/\r
private Language getAndHandleLanguage(Map<String, Language> iso639Map, String iso639_2, String iso639_1, String languageString, String originalLanguageString, BerlinModelImportState state) {\r
Language language;\r
- if (CdmUtils.isNotEmpty(iso639_2)|| CdmUtils.isNotEmpty(iso639_1) ){\r
+ if (StringUtils.isNotBlank(iso639_2)|| StringUtils.isNotBlank(iso639_1) ){\r
//TODO test performance, implement in state\r
language = getLanguageFromIsoMap(iso639Map, iso639_2, iso639_1);\r
\r
* @param originalLanguageString\r
*/\r
private void addOriginalLanguage(Language language, String originalLanguageString) {\r
- if (CdmUtils.isBlank(originalLanguageString)){\r
+ if (isBlank(originalLanguageString)){\r
return;\r
}else if (language == null){\r
logger.warn("Language could not be defined, but originalLanguageString exists: " + originalLanguageString);\r
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;\r
import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
import eu.etaxonomy.cdm.model.location.NamedArea;\r
+import eu.etaxonomy.cdm.model.location.NamedAreaLevel;\r
+import eu.etaxonomy.cdm.model.location.NamedAreaType;\r
import eu.etaxonomy.cdm.model.reference.Reference;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
\r
TransactionStatus txStatus = this.startTransaction();\r
//TODO\r
- if (sourceReference.getId() > 0){\r
- sourceReference = getReferenceService().find(sourceReference.getUuid()); //just to be sure\r
- } \r
+ Reference<?> persistentSourceReference = getReferenceService().find(sourceReference.getUuid()); //just to be sure\r
+ if (persistentSourceReference != null){\r
+ sourceReference = persistentSourceReference;\r
+ }\r
+ \r
TermVocabulary<NamedArea> euroMedAreas = makeEmptyEuroMedVocabulary();\r
\r
MarkerType eurMarkerType = getMarkerType(state, BerlinModelTransformer.uuidEurArea, "eur", "eur Area", "eur");\r
ExtensionType isoCodeExtType = getExtensionType(state, BerlinModelTransformer.uuidIsoCode, "IsoCode", "IsoCode", "iso");\r
ExtensionType tdwgCodeExtType = getExtensionType(state, BerlinModelTransformer.uuidTdwgAreaCode, "TDWG code", "TDWG Area code", "tdwg");\r
ExtensionType mclCodeExtType = getExtensionType(state, BerlinModelTransformer.uuidMclCode, "MCL code", "MedCheckList code", "mcl");\r
+ NamedAreaLevel areaLevelTop = getNamedAreaLevel(state, BerlinModelTransformer.uuidAreaLevelTop, "Euro+Med top area level", "Euro+Med top area level. This level is only to be used for the area representing the complete Euro+Med area", "e+m top", null);\r
+ NamedAreaLevel areaLevelEm1 = getNamedAreaLevel(state, BerlinModelTransformer.uuidAreaLevelFirst, "Euro+Med 1. area level", "Euro+Med 1. area level", "e+m 1.", null);\r
+ NamedAreaLevel areaLevelEm2 = getNamedAreaLevel(state, BerlinModelTransformer.uuidAreaLevelSecond, "Euro+Med 2. area level", "Euro+Med 2. area level", "Euro+Med 1. area level", null);\r
+ \r
\r
String sql = "SELECT * , CASE WHEN EMCode = 'EM' THEN 'a' ELSE 'b' END as isEM " +\r
" FROM emArea " +\r
\r
//euroMedArea (EMCode = 'EM')\r
rs.next();\r
- euroMedArea = makeSingleEuroMedArea(rs, eurMarkerType, euroMedAreaMarkerType, isoCodeExtType, tdwgCodeExtType, mclCodeExtType, sourceReference, euroMedArea, lastLevel2Area);\r
+ euroMedArea = makeSingleEuroMedArea(rs, eurMarkerType, euroMedAreaMarkerType, isoCodeExtType, tdwgCodeExtType, mclCodeExtType, \r
+ areaLevelTop, areaLevelEm1 , areaLevelEm2, sourceReference, euroMedArea, lastLevel2Area);\r
euroMedAreas.addTerm(euroMedArea);\r
\r
//all other areas\r
while (rs.next()){\r
NamedArea newArea = makeSingleEuroMedArea(rs, eurMarkerType, euroMedAreaMarkerType,\r
- isoCodeExtType, tdwgCodeExtType, mclCodeExtType, sourceReference, euroMedArea, lastLevel2Area);\r
+ isoCodeExtType, tdwgCodeExtType, mclCodeExtType, \r
+ areaLevelTop, areaLevelEm1 , areaLevelEm2, sourceReference, euroMedArea, lastLevel2Area);\r
euroMedAreas.addTerm(newArea);\r
if (newArea.getPartOf().equals(euroMedArea)){\r
lastLevel2Area = newArea;\r
* @param tdwgCodeExtType\r
* @param mclCodeExtType\r
* @param rs\r
+ * @param areaLevelEm2 \r
+ * @param areaLevelEm1 \r
+ * @param areaLevelTop \r
* @throws SQLException\r
*/\r
private NamedArea makeSingleEuroMedArea(ResultSet rs, MarkerType eurMarkerType,\r
MarkerType euroMedAreaMarkerType, ExtensionType isoCodeExtType,\r
ExtensionType tdwgCodeExtType, ExtensionType mclCodeExtType,\r
+ NamedAreaLevel areaLevelTop, NamedAreaLevel areaLevelEm1, NamedAreaLevel areaLevelEm2, \r
Reference<?> sourceReference, NamedArea euroMedArea, NamedArea level2Area) throws SQLException {\r
Integer areaId = rs.getInt("AreaId");\r
String emCode = nullSafeTrim(rs.getString("EMCode"));\r
area.addExtension(mclCode, mclCodeExtType);\r
}\r
\r
+ //type\r
+ area.setType(NamedAreaType.ADMINISTRATION_AREA());\r
+ \r
//source\r
area.addSource(OriginalSourceType.Import, String.valueOf(areaId), EM_AREA_NAMESPACE, sourceReference, null);\r
\r
if (euroMedArea != null){\r
if (emCode.contains("(")){\r
area.setPartOf(level2Area);\r
+ area.setLevel(areaLevelEm2);\r
}else{\r
area.setPartOf(euroMedArea);\r
+ area.setLevel(areaLevelEm1);\r
}\r
+ }else{\r
+ area.setLevel(areaLevelTop);\r
}\r
this.euroMedAreas.put(areaId, area);\r
\r