import java.util.Set;\r
import java.util.UUID;\r
\r
+import javax.mail.MethodNotSupportedException;\r
+\r
import org.apache.log4j.Logger;\r
import org.springframework.stereotype.Component;\r
\r
*/\r
@Override\r
protected String getRecordQuery(BerlinModelImportConfigurator config) {\r
- String strRecordQuery = \r
- " SELECT * " + \r
- " FROM PTaxon " +\r
- " WHERE ( RIdentifier IN (" + ID_LIST_TOKEN + ") )";\r
+ String sqlSelect = " SELECT pt.* ";\r
+ String sqlFrom = " FROM PTaxon pt "; \r
+ if (isEuroMed(config) ){\r
+ sqlFrom = " PTaxon AS p INNER JOIN v_cdm_exp_taxaAll AS em ON p.RIdentifier = em.RIdentifier ";\r
+ sqlSelect += " , em.MA ";\r
+ }\r
+ \r
+ \r
+ String sqlWhere = " WHERE ( pt.RIdentifier IN (" + ID_LIST_TOKEN + ") )";\r
+ \r
+ String strRecordQuery =sqlSelect + " " + sqlFrom + " " + sqlWhere ;\r
+// " SELECT * " + \r
+// " FROM PTaxon " + state.getConfig().getTaxonTable();\r
+// " WHERE ( RIdentifier IN (" + ID_LIST_TOKEN + ") )";\r
return strRecordQuery;\r
}\r
\r
+ private boolean isEuroMed(BerlinModelImportConfigurator config) {\r
+ return config.getTaxonTable().trim().equals("v_cdm_exp_taxaAll");\r
+ }\r
+\r
+\r
+\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.io.common.CdmIoBase#doCheck(eu.etaxonomy.cdm.io.common.IImportConfigurator)\r
*/\r
*/\r
public boolean doPartition(ResultSetPartitioner partitioner, BerlinModelImportState state) {\r
boolean success = true ;\r
+ \r
BerlinModelImportConfigurator config = state.getConfig();\r
Set<TaxonBase> taxaToSave = new HashSet<TaxonBase>();\r
Map<String, TaxonNameBase> taxonNameMap = (Map<String, TaxonNameBase>) partitioner.getObjectMap(BerlinModelTaxonNameImport.NAMESPACE);\r
\r
ResultSet rs = partitioner.getResultSet();\r
try{\r
+ boolean publishFlagExists = state.getConfig().getSource().checkColumnExists("PTaxon", "PublishFlag");\r
+ boolean isEuroMed = isEuroMed(state.getConfig());\r
while (rs.next()){\r
\r
// if ((i++ % modCount) == 0 && i!= 1 ){ logger.info("PTaxa handled: " + (i-1));}\r
taxonBase.setUseNameCache(true);\r
}\r
//publisheFlag\r
- boolean publishFlagExists = state.getConfig().getSource().checkColumnExists("PTaxon", "PublishFlag");\r
if (publishFlagExists){\r
Boolean publishFlag = rs.getBoolean("PublishFlag");\r
- if (config.getTaxonPublishMarker().doMark(publishFlag)){\r
+ Boolean misapplied = false;\r
+ if (isEuroMed){\r
+ misapplied = rs.getBoolean("MA");\r
+ }\r
+ \r
+ if (config.getTaxonPublishMarker().doMark(publishFlag) && ! misapplied){\r
taxonBase.addMarker(Marker.NewInstance(MarkerType.PUBLISH(), publishFlag));\r
}\r
}\r
} catch (SQLException e) {\r
logger.error("SQLException:" + e);\r
return false;\r
+ } catch (MethodNotSupportedException e) {\r
+ logger.error("MethodNotSupportedException:" + e);\r
+ return false;\r
}\r
\r
\r