/**\r
* Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
* http://www.e-taxonomy.eu\r
-* \r
+*\r
* The contents of this file are subject to the Mozilla Public License Version 1.1\r
* See LICENSE.TXT at the top of this package for the full license terms.\r
*/\r
import org.apache.log4j.Logger;\r
import org.springframework.stereotype.Component;\r
\r
-import eu.etaxonomy.cdm.io.algaterra.AlgaTerraImageImportBase.PathType;\r
import eu.etaxonomy.cdm.io.algaterra.validation.AlgaTerraTypeImportValidator;\r
import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator;\r
import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportState;\r
\r
/**\r
* @author a.mueller\r
- * @created 20.03.2008\r
+ * @since 20.03.2008\r
*/\r
@Component\r
public class AlgaTerraTypeImagesImport extends AlgaTerraImageImportBase {\r
private static final Logger logger = Logger.getLogger(AlgaTerraTypeImagesImport.class);\r
\r
- \r
+\r
private static int modCount = 5000;\r
private static final String pluralString = "type images";\r
- private static final String dbTableName = "SpecimenFigure"; //?? \r
- \r
+ private static final String dbTableName = "SpecimenFigure"; //??\r
+\r
public AlgaTerraTypeImagesImport(){\r
super(dbTableName, pluralString);\r
}\r
- \r
- \r
+\r
+\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getIdQuery()\r
*/\r
@Override\r
protected String getIdQuery(BerlinModelImportState state) {\r
- String result = " SELECT SpecimenFigureId " \r
- + " FROM SpecimenFigure " \r
+ String result = " SELECT SpecimenFigureId "\r
+ + " FROM SpecimenFigure "\r
+ " WHERE TypeSpecimenFk is NOT NULL "\r
+ " ORDER BY TypeSpecimenFk ";\r
return result;\r
*/\r
@Override\r
protected String getRecordQuery(BerlinModelImportConfigurator config) {\r
- String strQuery = \r
- \r
+ String strQuery =\r
+\r
" SELECT sf.*, sf.SpecimenFigurePhrase as FigurePhrase, sf.SpecimenFigure as fileName, sf.PicturePath as filePath" +\r
- " FROM SpecimenFigure sf " \r
- + " WHERE (sf.SpecimenFigureId IN (" + ID_LIST_TOKEN + ") )" \r
+ " FROM SpecimenFigure sf "\r
+ + " WHERE (sf.SpecimenFigureId IN (" + ID_LIST_TOKEN + ") )"\r
+ " ORDER BY TypeSpecimenFk ";\r
;\r
return strQuery;\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
- public boolean doPartition(ResultSetPartitioner partitioner, BerlinModelImportState bmState) {\r
+ @Override\r
+ public boolean doPartition(ResultSetPartitioner partitioner, BerlinModelImportState bmState) {\r
boolean success = true;\r
- \r
+\r
AlgaTerraImportState state = (AlgaTerraImportState)bmState;\r
- \r
+\r
Set<SpecimenOrObservationBase> unitsToSave = new HashSet<SpecimenOrObservationBase>();\r
- \r
- Map<String, DerivedUnit> typeSpecimenMap = (Map<String, DerivedUnit>) partitioner.getObjectMap(AlgaTerraSpecimenImportBase.TYPE_SPECIMEN_DERIVED_UNIT_NAMESPACE);\r
- Map<String, Reference> referenceMap = (Map<String, Reference>) partitioner.getObjectMap(BerlinModelReferenceImport.REFERENCE_NAMESPACE);\r
- \r
- \r
+\r
+ Map<String, DerivedUnit> typeSpecimenMap = partitioner.getObjectMap(AlgaTerraSpecimenImportBase.TYPE_SPECIMEN_DERIVED_UNIT_NAMESPACE);\r
+ Map<String, Reference> referenceMap = partitioner.getObjectMap(BerlinModelReferenceImport.REFERENCE_NAMESPACE);\r
+\r
+\r
ResultSet rs = partitioner.getResultSet();\r
\r
try {\r
- \r
+\r
int i = 0;\r
\r
//for each reference\r
while (rs.next()){\r
- \r
+\r
if ((i++ % modCount) == 0 && i!= 1 ){ logger.info(pluralString + " handled: " + (i-1));}\r
- \r
+\r
int figureId = rs.getInt("SpecimenFigureId");\r
int typeSpecimenFk = rs.getInt("typeSpecimenFk");\r
- \r
- \r
+\r
+\r
//TODO etc. Created, Notes, Copyright, TermsOfUse etc.\r
- \r
+\r
try {\r
- \r
+\r
//source ref\r
- Reference<?> sourceRef = state.getTransactionalSourceReference();\r
- \r
+ Reference sourceRef = state.getTransactionalSourceReference();\r
+\r
DerivedUnit derivedUnit = typeSpecimenMap.get(String.valueOf(typeSpecimenFk));\r
- \r
+\r
if (derivedUnit == null){\r
logger.warn("Could not find type specimen (" + typeSpecimenFk +") for specimen figure " + figureId);\r
}else{\r
- \r
+\r
//field observation\r
Media media = handleSingleImage(rs, derivedUnit, state, partitioner, PathType.Image);\r
- \r
+\r
handleTypeImageSpecificFields(rs, media, state);\r
- \r
- unitsToSave.add(derivedUnit); \r
+\r
+ unitsToSave.add(derivedUnit);\r
}\r
\r
\r
} catch (Exception e) {\r
logger.warn("Exception in " + getTableName() + ": SpecimenFigureId " + figureId + ". " + e.getMessage());\r
e.printStackTrace();\r
- } \r
- \r
+ }\r
+\r
}\r
- \r
+\r
// logger.warn("Specimen: " + countSpecimen + ", Descriptions: " + countDescriptions );\r
\r
logger.warn(pluralString + " to save: " + unitsToSave.size());\r
- getOccurrenceService().saveOrUpdate(unitsToSave); \r
- \r
+ getOccurrenceService().saveOrUpdate(unitsToSave);\r
+\r
return success;\r
} catch (SQLException e) {\r
logger.error("SQLException:" + e);\r
//TODO refFk, refDetailFk, publishFlag\r
Integer refFk = nullSafeInt(rs, "refFk");\r
Integer refDetailFk = nullSafeInt(rs, "refDetailFk");\r
- \r
+\r
//TODO\r
- \r
- \r
+\r
+\r
}\r
\r
@Override\r
public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs, BerlinModelImportState state) {\r
- String nameSpace;\r
- Class<?> cdmClass;\r
+\r
+ String nameSpace;\r
Set<String> idSet;\r
- Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<Object, Map<String, ? extends CdmBase>>();\r
- \r
+ Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<>();\r
+\r
try{\r
- Set<String> typeSpecimenIdSet = new HashSet<String>();\r
- \r
+ Set<String> typeSpecimenIdSet = new HashSet<>();\r
+\r
while (rs.next()){\r
handleForeignKey(rs, typeSpecimenIdSet, "TypeSpecimenFk");\r
}\r
- \r
+\r
//type specimen map\r
nameSpace = AlgaTerraSpecimenImportBase.TYPE_SPECIMEN_DERIVED_UNIT_NAMESPACE;\r
- cdmClass = SpecimenOrObservationBase.class;\r
idSet = typeSpecimenIdSet;\r
- Map<String, DerivedUnit> typeSpecimenMap = (Map<String, DerivedUnit>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);\r
+ Map<String, DerivedUnit> typeSpecimenMap = getCommonService().getSourcedObjectsByIdInSourceC(DerivedUnit.class, idSet, nameSpace);\r
result.put(nameSpace, typeSpecimenMap);\r
\r
- \r
+\r
} catch (SQLException e) {\r
throw new RuntimeException(e);\r
}\r
return ! ( config.isDoTypes() && config.isDoImages()) ;\r
// return false;\r
}\r
- \r
+\r
}\r