import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.REF_PART_OF_OTHER_TITLE;\r
import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.REF_UNKNOWN;\r
import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.REF_WEBSITE;\r
+import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelImportConfigurator.DO_REFERENCES.*;\r
\r
import java.sql.ResultSet;\r
import java.sql.SQLException;\r
import java.util.ArrayList;\r
import java.util.Iterator;\r
import java.util.List;\r
-import java.util.Map;\r
-import java.util.UUID;\r
\r
import org.apache.log4j.Logger;\r
\r
import eu.etaxonomy.cdm.api.application.CdmApplicationController;\r
import eu.etaxonomy.cdm.api.service.IReferenceService;\r
import eu.etaxonomy.cdm.io.source.Source;\r
-import eu.etaxonomy.cdm.model.agent.Agent;\r
-import eu.etaxonomy.cdm.model.common.Annotation;\r
-import eu.etaxonomy.cdm.model.common.Language;\r
+import eu.etaxonomy.cdm.model.agent.Team;\r
import eu.etaxonomy.cdm.model.reference.Article;\r
import eu.etaxonomy.cdm.model.reference.Book;\r
import eu.etaxonomy.cdm.model.reference.BookSection;\r
\r
private static int modCount = 1000;\r
\r
- public static boolean invoke(Source source, CdmApplicationController cdmApp, boolean deleteAll, \r
- MapWrapper<ReferenceBase> referenceMap, MapWrapper<Agent> authorMap){\r
- \r
+ public static boolean invoke(BerlinModelImportConfigurator bmiConfig, CdmApplicationController cdmApp,\r
+ MapWrapper<ReferenceBase> referenceMap, MapWrapper<Team> authorMap){\r
+ Source source = bmiConfig.getSource();\r
String dbAttrName;\r
String cdmAttrName;\r
boolean success = true;\r
\r
logger.info("start makeReferences ...");\r
IReferenceService referenceService = cdmApp.getReferenceService();\r
- boolean delete = deleteAll;\r
+ boolean delete = bmiConfig.isDeleteAll();\r
\r
// if (delete){\r
// List<TaxonNameBase> listAllReferences = referenceService.getAllReferences(0, 1000);\r
//strQueryBase += " AND Reference.refId = 7000000 " ;\r
String strQueryNoInRef = strQueryBase + \r
" AND (Reference.InRefFk is NULL) ";\r
-\r
\r
String strQuery1InRef = strQueryBase + \r
" AND (Reference.InRefFk is NOT NULL) AND (InReference.InRefFk is NULL) ";\r
logger.error("Maximum allowed InReference recursions exceeded in Berlin Model. Maximum recursion level is 2.");\r
return false;\r
}\r
+\r
+ if (bmiConfig.getDoReferences() == CONCEPT_REFERENCES){\r
+ strQueryNoInRef += " AND ( Reference.refId IN ( SELECT ptRefFk FROM PTaxon) ) ";\r
+ }\r
\r
List<ResultSet> resultSetList = new ArrayList<ResultSet>();\r
resultSetList.add(source.getResultSet(strQueryNoInRef));\r
- resultSetList.add(source.getResultSet(strQuery1InRef));\r
- resultSetList.add(source.getResultSet(strQuery2InRef));\r
+ if (bmiConfig.getDoReferences() == ALL || bmiConfig.getDoReferences() == NOMENCLATURAL){\r
+ resultSetList.add(source.getResultSet(strQuery1InRef));\r
+ resultSetList.add(source.getResultSet(strQuery2InRef));\r
+ }\r
+ \r
\r
int i = 0;\r
//for each reference\r
\r
dbAttrName = "nomRefCache";\r
cdmAttrName = "titleCache";\r
- success &= ImportHelper.addStringValue(rs, referenceBase, dbAttrName, cdmAttrName);\r
- \r
+ success &= ImportHelper.addStringValue(rs, referenceBase, dbAttrName, cdmAttrName, ImportHelper.NO_OVERWRITE);\r
\r
//refId\r
- //TODO\r
-// Annotation annotation = new Annotation("Berlin Model id: " + String.valueOf(refId), Language.DEFAULT());\r
-// referenceBase.addAnnotations(annotation);\r
- //referenceBase.setLsid(String.valueOf(refId));\r
+ ImportHelper.setOriginalSource(referenceBase, bmiConfig.getSourceReference(), refId);\r
\r
// dbAttrName = "BinomHybFlag";\r
// cdmAttrName = "isBinomHybrid";\r