/** * Imports MolgenisEntity from tab/comma delimited File. * * @param MolgenisEntityFile a tab delimited file with MolgenisEntity data. */ private static void importMolgenisEntity(Database db, File MolgenisEntityFile) throws DatabaseException, IOException, Exception { logger.debug("trying to import " + MolgenisEntityFile); if (!MolgenisEntityFile.exists()) { logger.warn("MolgenisEntity.txt file is missing, skipped import"); } else { // read MolgenisEntity from file CsvReader reader = new CsvFileReader(MolgenisEntityFile); List<MolgenisEntity> molgenisEntityList = db.toList(MolgenisEntity.class, reader, Integer.MAX_VALUE); // should have no limit logger.debug("loaded " + molgenisEntityList.size() + " MolgenisEntity objects"); // redirect incoming and outgoing fkeys List<Integer> molgenisEntityIds = new ArrayList<Integer>(); // also doesn't scale for (int i = 0; i < molgenisEntityList.size(); i++) // sorry, not a real list so need to put back!! { MolgenisEntity object = molgenisEntityList.get(i); // remember index of this id for incoming fkeys molgenisEntityIds.add(object.getId()); // redirect outgoing fkeys // add assay back to list molgenisEntityList.set(i, object); } // add to database db.add(molgenisEntityList); for (int i = 0; i < molgenisEntityList.size(); i++) { molgenisEntityIdMap.put(molgenisEntityIds.get(i), molgenisEntityList.get(i).getId()); } } }
public ImportWizardExcelPrognosis(File excelFile) throws Exception { Workbook workbook = Workbook.getWorkbook(excelFile); ArrayList<String> lowercasedSheetNames = new ArrayList<String>(); Map<String, String> lowerToOriginalName = new HashMap<String, String>(); try { for (String sheetName : workbook.getSheetNames()) { lowercasedSheetNames.add(sheetName.toLowerCase()); lowerToOriginalName.put(sheetName.toLowerCase(), sheetName); } if (lowercasedSheetNames.contains("molgenisrole")) { String originalSheetname = lowerToOriginalName.get("molgenisrole"); Sheet sheet = workbook.getSheet(originalSheetname); MolgenisRoleExcelReader excelReader = new MolgenisRoleExcelReader(); List<String> allHeaders = excelReader.getNonEmptyHeaders(sheet); MolgenisRole entity = new MolgenisRole(); headersToMaps(originalSheetname, allHeaders, entity.getFields()); } if (lowercasedSheetNames.contains("molgenisgroup")) { String originalSheetname = lowerToOriginalName.get("molgenisgroup"); Sheet sheet = workbook.getSheet(originalSheetname); MolgenisGroupExcelReader excelReader = new MolgenisGroupExcelReader(); List<String> allHeaders = excelReader.getNonEmptyHeaders(sheet); MolgenisGroup entity = new MolgenisGroup(); headersToMaps(originalSheetname, allHeaders, entity.getFields()); } if (lowercasedSheetNames.contains("institute")) { String originalSheetname = lowerToOriginalName.get("institute"); Sheet sheet = workbook.getSheet(originalSheetname); InstituteExcelReader excelReader = new InstituteExcelReader(); List<String> allHeaders = excelReader.getNonEmptyHeaders(sheet); Institute entity = new Institute(); headersToMaps(originalSheetname, allHeaders, entity.getFields()); } if (lowercasedSheetNames.contains("ontology")) { String originalSheetname = lowerToOriginalName.get("ontology"); Sheet sheet = workbook.getSheet(originalSheetname); OntologyExcelReader excelReader = new OntologyExcelReader(); List<String> allHeaders = excelReader.getNonEmptyHeaders(sheet); Ontology entity = new Ontology(); headersToMaps(originalSheetname, allHeaders, entity.getFields()); } if (lowercasedSheetNames.contains("ontologyterm")) { String originalSheetname = lowerToOriginalName.get("ontologyterm"); Sheet sheet = workbook.getSheet(originalSheetname); OntologyTermExcelReader excelReader = new OntologyTermExcelReader(); List<String> allHeaders = excelReader.getNonEmptyHeaders(sheet); OntologyTerm entity = new OntologyTerm(); headersToMaps(originalSheetname, allHeaders, entity.getFields()); } if (lowercasedSheetNames.contains("person")) { String originalSheetname = lowerToOriginalName.get("person"); Sheet sheet = workbook.getSheet(originalSheetname); PersonExcelReader excelReader = new PersonExcelReader(); List<String> allHeaders = excelReader.getNonEmptyHeaders(sheet); Person entity = new Person(); headersToMaps(originalSheetname, allHeaders, entity.getFields()); } if (lowercasedSheetNames.contains("molgenisuser")) { String originalSheetname = lowerToOriginalName.get("molgenisuser"); Sheet sheet = workbook.getSheet(originalSheetname); MolgenisUserExcelReader excelReader = new MolgenisUserExcelReader(); List<String> allHeaders = excelReader.getNonEmptyHeaders(sheet); MolgenisUser entity = new MolgenisUser(); headersToMaps(originalSheetname, allHeaders, entity.getFields()); } if (lowercasedSheetNames.contains("molgenisrolegrouplink")) { String originalSheetname = lowerToOriginalName.get("molgenisrolegrouplink"); Sheet sheet = workbook.getSheet(originalSheetname); MolgenisRoleGroupLinkExcelReader excelReader = new MolgenisRoleGroupLinkExcelReader(); List<String> allHeaders = excelReader.getNonEmptyHeaders(sheet); MolgenisRoleGroupLink entity = new MolgenisRoleGroupLink(); headersToMaps(originalSheetname, allHeaders, entity.getFields()); } if (lowercasedSheetNames.contains("molgenisfile")) { String originalSheetname = lowerToOriginalName.get("molgenisfile"); Sheet sheet = workbook.getSheet(originalSheetname); MolgenisFileExcelReader excelReader = new MolgenisFileExcelReader(); List<String> allHeaders = excelReader.getNonEmptyHeaders(sheet); MolgenisFile entity = new MolgenisFile(); headersToMaps(originalSheetname, allHeaders, entity.getFields()); } if (lowercasedSheetNames.contains("runtimeproperty")) { String originalSheetname = lowerToOriginalName.get("runtimeproperty"); Sheet sheet = workbook.getSheet(originalSheetname); RuntimePropertyExcelReader excelReader = new RuntimePropertyExcelReader(); List<String> allHeaders = excelReader.getNonEmptyHeaders(sheet); RuntimeProperty entity = new RuntimeProperty(); headersToMaps(originalSheetname, allHeaders, entity.getFields()); } if (lowercasedSheetNames.contains("publication")) { String originalSheetname = lowerToOriginalName.get("publication"); Sheet sheet = workbook.getSheet(originalSheetname); PublicationExcelReader excelReader = new PublicationExcelReader(); List<String> allHeaders = excelReader.getNonEmptyHeaders(sheet); Publication entity = new Publication(); headersToMaps(originalSheetname, allHeaders, entity.getFields()); } if (lowercasedSheetNames.contains("usecase")) { String originalSheetname = lowerToOriginalName.get("usecase"); Sheet sheet = workbook.getSheet(originalSheetname); UseCaseExcelReader excelReader = new UseCaseExcelReader(); List<String> allHeaders = excelReader.getNonEmptyHeaders(sheet); UseCase entity = new UseCase(); headersToMaps(originalSheetname, allHeaders, entity.getFields()); } if (lowercasedSheetNames.contains("molgenisentity")) { String originalSheetname = lowerToOriginalName.get("molgenisentity"); Sheet sheet = workbook.getSheet(originalSheetname); MolgenisEntityExcelReader excelReader = new MolgenisEntityExcelReader(); List<String> allHeaders = excelReader.getNonEmptyHeaders(sheet); MolgenisEntity entity = new MolgenisEntity(); headersToMaps(originalSheetname, allHeaders, entity.getFields()); } if (lowercasedSheetNames.contains("molgenispermission")) { String originalSheetname = lowerToOriginalName.get("molgenispermission"); Sheet sheet = workbook.getSheet(originalSheetname); MolgenisPermissionExcelReader excelReader = new MolgenisPermissionExcelReader(); List<String> allHeaders = excelReader.getNonEmptyHeaders(sheet); MolgenisPermission entity = new MolgenisPermission(); headersToMaps(originalSheetname, allHeaders, entity.getFields()); } for (String sheetName : lowerToOriginalName.values()) { if (importOrder.contains(sheetName)) { sheetsImportable.put(sheetName, true); } else { sheetsImportable.put(sheetName, false); } } } catch (Exception e) { throw e; } finally { workbook.close(); } }