private List<FileReadAttributeBean> processFileReadBeans( String _projectName, String _sampleName, List<FileReadAttributeBean> loadingList) throws Exception { List<FileReadAttributeBean> processedList = new ArrayList<FileReadAttributeBean>(); for (FileReadAttributeBean fBean : loadingList) { if (fBean.getProjectName() == null || eventName.equals(Constants.EVENT_PROJECT_REGISTRATION)) { fBean.setProjectName(_projectName); } if (fBean.getSampleName() == null) { fBean.setSampleName(_sampleName); } // handle file uploads if (fBean.getUpload() != null && fBean.getUploadFileName() != null && !fBean.getUploadFileName().isEmpty()) { fileStoragePath = fileStoragePath + (fileStoragePath.endsWith(File.separator) ? "" : File.separator); String originalFileName = fBean.getUploadFileName(); String fileDirectoryPathProject = _projectName.replaceAll(" ", "_"); // project folder String fileDirectoryPathSample = fileDirectoryPathProject + File.separator + (_sampleName != null && !_sampleName.isEmpty() ? _sampleName.replaceAll(" ", "_") : "project"); // sample folder String fileDirectoryPath = fileDirectoryPathSample + File.separator + CommonTool.convertTimestampToDate(new Date()); // date folder String fileName = originalFileName.substring(0, originalFileName.indexOf(".")) + "_" + System.currentTimeMillis() + originalFileName.substring( originalFileName.indexOf( ".")); // append "_" + current time in milliseconds to file name File fileDirectory = new File(fileStoragePath + fileDirectoryPath); if (!fileDirectory.exists() || !fileDirectory.isDirectory()) { fileDirectory.mkdirs(); } File theFile = new File(fileDirectory.getPath() + File.separator + fileName); FileUtils.copyFile(fBean.getUpload(), theFile); if (theFile.exists() && theFile.isFile() && theFile.canRead()) { fBean.getUpload().delete(); fBean.setAttributeValue(fileDirectoryPath + File.separator + fileName); if (loadedFiles == null) { loadedFiles = new ArrayList<String>(); } loadedFiles.add(fBean.getAttributeValue()); } } if (!fBean.getAttributeName().equals("0") && fBean.getAttributeValue() != null && !fBean.getAttributeValue().equals("0") && !fBean.getAttributeValue().isEmpty()) { processedList.add(fBean); } } return processedList; }