List of usage examples for org.apache.commons.validator.routines CurrencyValidator getInstance
public static BigDecimalValidator getInstance()
From source file:com.salesmanager.core.module.impl.application.currencies.USDCurrencyModule.java
public BigDecimal getAmount(String amount) throws Exception { if (!amount.contains(",") && !amount.contains(".") && !amount.contains(" ")) { if (CurrencyModuleUtil.matchPositiveInteger(amount)) { BigDecimalValidator validator = CurrencyValidator.getInstance(); BigDecimal bdamount = validator.validate(amount, Locale.US); if (bdamount == null) { throw new ValidationException("Cannot parse " + amount); } else { return bdamount; }/* w w w.jav a2s . c om*/ } else { throw new ValidationException("Cannot parse " + amount); } } else { Matcher matcher = pattern.matcher(amount); if (matcher.matches()) { BigDecimalValidator validator = CurrencyValidator.getInstance(); BigDecimal bdamount = validator.validate(amount, Locale.US); return bdamount; } else { throw new ValidationException("Cannot parse " + amount); } } }
From source file:com.salesmanager.core.module.impl.application.currencies.EURCurrencyModule.java
public BigDecimal getAmount(String amount) throws Exception { // Pattern pattern = // Pattern.compile("\\d{1,3}(?:(?:.\\d\\d\\d)*|\\d*)(?:\\,\\d\\d)?"); if (!amount.contains(",") && !amount.contains(".") && !amount.contains(",") && !amount.contains(" ")) { if (CurrencyModuleUtil.matchPositiveInteger(amount)) { BigDecimalValidator validator = CurrencyValidator.getInstance(); BigDecimal bdamount = validator.validate(amount, Locale.US); if (bdamount == null) { throw new ValidationException("Cannot parse " + amount); } else { return bdamount; }/*from w ww . j a v a 2 s . co m*/ } else { throw new ValidationException("Cannot parse " + amount); } } else { Matcher matcher = pattern.matcher(amount); if (matcher.matches()) { // switch comma and dots amount = amount.replaceAll(",", ":"); amount = amount.replaceAll("\\.", ","); amount = amount.replaceAll(":", "."); BigDecimalValidator validator = CurrencyValidator.getInstance(); // BigDecimal bdamount = validator.validate(amount, // Locale.GERMAN);//could do the job BigDecimal bdamount = validator.validate(amount, Locale.US); return bdamount; } else { throw new ValidationException("Cannot parse " + amount); } } }
From source file:com.salesmanager.core.module.impl.application.currencies.GenericCurrencyModule.java
public BigDecimal getAmount(String amount) throws Exception { // validations /**/* w ww. j a v a 2s .com*/ * 1) remove decimal and thousand * * String.replaceAll(decimalPoint, ""); String.replaceAll(thousandPoint, * ""); * * Should be able to parse to Integer */ StringBuffer newAmount = new StringBuffer(); for (int i = 0; i < amount.length(); i++) { if (amount.charAt(i) != decimalPoint && amount.charAt(i) != thousandPoint) { newAmount.append(amount.charAt(i)); } } try { Integer.parseInt(newAmount.toString()); } catch (Exception e) { throw new ValidationException("Cannot parse " + amount); } if (!amount.contains(Character.toString(decimalPoint)) && !amount.contains(Character.toString(thousandPoint)) && !amount.contains(" ")) { if (CurrencyModuleUtil.matchPositiveInteger(amount)) { BigDecimalValidator validator = CurrencyValidator.getInstance(); BigDecimal bdamount = validator.validate(amount, Locale.US); if (bdamount == null) { throw new ValidationException("Cannot parse " + amount); } else { return bdamount; } } else { throw new ValidationException("Not a positive integer " + amount); } } else { StringBuffer pat = new StringBuffer(); if (!StringUtils.isBlank(Character.toString(thousandPoint))) { pat.append("\\d{1,3}(" + thousandPoint + "?\\d{3})*"); } pat.append("(\\" + decimalPoint + "\\d{1," + decimalCount + "})"); Pattern pattern = Pattern.compile(pat.toString()); Matcher matcher = pattern.matcher(amount); if (matcher.matches()) { Locale locale = Locale.US; if (this.decimalPoint == ',') { locale = Locale.GERMAN; } BigDecimalValidator validator = CurrencyValidator.getInstance(); BigDecimal bdamount = validator.validate(amount, locale); return bdamount; } else { throw new ValidationException("Cannot parse " + amount); } } }
From source file:com.iana.boesc.utility.BOESCUtil.java
/** * validates whether data is currency of not * /*from w w w . j a v a2 s .c o m*/ * @param currency * @param loc * @return */ public static boolean currencyValidator(String currency, Locale loc) { BigDecimalValidator validator = CurrencyValidator.getInstance(); if (loc == null) { loc = Locale.US; } BigDecimal amount = validator.validate(currency, loc); if (amount == null) { return false; } return true; }
From source file:com.jd.survey.web.pdf.StatisticsPdf.java
private void writeCurrencyEntry(Document document, String label, double value) throws Exception { Paragraph questionParagraph = new Paragraph(); questionParagraph.setLeading(14, 0); questionParagraph.setIndentationLeft(18); questionParagraph.add(new Chunk(label.trim() + ": ", boldedFont)); questionParagraph.add(new Chunk( CurrencyValidator.getInstance().format(value, LocaleContextHolder.getLocale()), normalFont)); document.add(questionParagraph);//from w w w. ja va 2s .co m }
From source file:edu.ku.brc.af.ui.forms.validation.ValFormattedTextFieldSingle.java
/** * @param value/*w w w. j a v a2 s . co m*/ * @return */ protected UIValidatable.ErrorType validateNumeric(final String value) { Class<?> cls = formatter.getDataClass(); try { if (cls == BigDecimal.class) { if (bdValidator == null) { bdValidator = CurrencyValidator.getInstance(); } Number maxVal = formatter.getMaxValue(); Number minVal = formatter.getMinValue(); BigDecimal fooAmount = bdValidator.validate(value, Locale.getDefault()); // XXX FINAL RELEASE if (fooAmount == null) { // error...not a valid currency amount return UIValidatable.ErrorType.Error; } if (!bdValidator.minValue(fooAmount, minVal) || !bdValidator.maxValue(fooAmount, maxVal)) { // valid...in the specified range return UIValidatable.ErrorType.Error; } return UIValidatable.ErrorType.Valid; } else { try { if (cls == Long.class) { Number num = numIntFormatter.parse(value); Long val = Long.valueOf(num.toString()); return !isMinMaxOK(val) ? UIValidatable.ErrorType.Error : UIValidatable.ErrorType.Valid; } else if (cls == Integer.class) { Number num = numIntFormatter.parse(value); Integer val = Integer.valueOf(num.toString()); return !isMinMaxOK(val) ? UIValidatable.ErrorType.Error : UIValidatable.ErrorType.Valid; } else if (cls == Short.class) { Number num = numIntFormatter.parse(value); Short val = Short.valueOf(num.toString()); return !isMinMaxOK(val) ? UIValidatable.ErrorType.Error : UIValidatable.ErrorType.Valid; } else if (cls == Byte.class) { Number num = numIntFormatter.parse(value); Byte val = Byte.valueOf(num.toString()); return !isMinMaxOK(val) ? UIValidatable.ErrorType.Error : UIValidatable.ErrorType.Valid; } else if (cls == Double.class) { Number num = numberFormatter.parse(value); Double val = Double.valueOf(num.toString()); return !isMinMaxOK(val) ? UIValidatable.ErrorType.Error : UIValidatable.ErrorType.Valid; } else if (cls == Float.class) { Number num = numberFormatter.parse(value); Float val = Float.valueOf(num.toString()); return !isMinMaxOK(val) ? UIValidatable.ErrorType.Error : UIValidatable.ErrorType.Valid; } else { throw new RuntimeException("Missing case for numeric class [" + cls.getName() + "]"); } } catch (NumberFormatException fex) { return UIValidatable.ErrorType.Error; } } } catch (Exception ex) { } return UIValidatable.ErrorType.Error; }
From source file:com.jd.survey.dao.survey.SurveyDAOImpl.java
/** * Reads a single survey page from the survey data table */// ww w . ja v a 2 s.c o m @Override public SurveyPage getPage(final Survey survey, final SurveyDefinitionPage surveyDefinitionPage, final String dateFormat) { try { boolean hasDatabaseQuestions = false; StringBuilder stringBuilder = new StringBuilder(); String pageVisibilityColumn = "p" + surveyDefinitionPage.getOrder() + "v"; stringBuilder.append("select survey_id, " + pageVisibilityColumn + ", "); for (Question question : surveyDefinitionPage.getQuestions()) { int optionsCount = question.getOptions().size(); int rowCount = question.getRowLabels().size(); int columnCount = question.getColumnLabels().size(); switch (question.getType()) { case YES_NO_DROPDOWN: //Yes No DropDown stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + ","); hasDatabaseQuestions = true; break; case SHORT_TEXT_INPUT: //Short Text Input stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + ","); hasDatabaseQuestions = true; break; case LONG_TEXT_INPUT: //Long Text Input stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + ","); hasDatabaseQuestions = true; break; case HUGE_TEXT_INPUT: //Huge Text Input stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + ","); hasDatabaseQuestions = true; break; case INTEGER_INPUT: //Integer Input stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + ","); hasDatabaseQuestions = true; break; case CURRENCY_INPUT: //Currency Input stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + ","); hasDatabaseQuestions = true; break; case DECIMAL_INPUT: //Decimal Input stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + ","); hasDatabaseQuestions = true; break; case DATE_INPUT: //Date Input stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + ","); hasDatabaseQuestions = true; break; case SINGLE_CHOICE_DROP_DOWN: //Single choice Drop Down stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + ","); hasDatabaseQuestions = true; break; case MULTIPLE_CHOICE_CHECKBOXES: //Multiple Choice Checkboxes hasDatabaseQuestions = true; for (int o = 1; o <= optionsCount; o++) { stringBuilder.append( " p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "o" + o + ","); } //other support stringBuilder.append( " p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "text" + ","); break; case DATASET_DROP_DOWN: //DataSet Drop Down hasDatabaseQuestions = true; stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + ","); break; case SINGLE_CHOICE_RADIO_BUTTONS: //Single Choice Radio Buttons hasDatabaseQuestions = true; stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + ","); //other support stringBuilder.append( " p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "text" + ","); break; case YES_NO_DROPDOWN_MATRIX://Yes No DropDown Matrix hasDatabaseQuestions = true; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c + ","); } } break; case SHORT_TEXT_INPUT_MATRIX://Short Text Input Matrix hasDatabaseQuestions = true; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c + ","); } } break; case INTEGER_INPUT_MATRIX://Integer Input Matrix hasDatabaseQuestions = true; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c + ","); } } break; case CURRENCY_INPUT_MATRIX://Currency Input Matrix hasDatabaseQuestions = true; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c + ","); } } break; case DECIMAL_INPUT_MATRIX://Decimal Input Matrix hasDatabaseQuestions = true; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c + ","); } } break; case DATE_INPUT_MATRIX://Date Input Matrix hasDatabaseQuestions = true; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c + ","); } } break; case STAR_RATING: //Integer Input hasDatabaseQuestions = true; stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + ","); break; case SMILEY_FACES_RATING: //Integer Input hasDatabaseQuestions = true; stringBuilder.append(" p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + ","); break; } } stringBuilder.setLength(stringBuilder.length() - 1); if (!hasDatabaseQuestions) { stringBuilder.setLength(stringBuilder.length() - 1); } stringBuilder.append(" from survey_data_" + surveyDefinitionPage.getSurveyDefinition().getId()); stringBuilder.append(" where survey_id = ?"); SurveyPage surveyPage = this.jdbcTemplate.queryForObject(stringBuilder.toString(), new Object[] { survey.getId() }, new RowMapper<SurveyPage>() { public SurveyPage mapRow(ResultSet rs, int rowNum) throws SQLException { int optionsCount; int rowCount; int columnCount; Integer[] integerAnswerValuesArray; Long[][] longAnswerValuesMatrix; String[][] stringAnswerValuesMatrix; BigDecimal[][] bigDecimalAnswerValuesMatrix; Boolean[][] booleanAnswerValuesMatrix; Date[][] dateAnswerValuesMatrix; SurveyPage page = new SurveyPage(survey, surveyDefinitionPage); page.setVisible((rs.getBoolean("p" + surveyDefinitionPage.getOrder() + "v"))); QuestionAnswer questionAnswer; List<QuestionAnswer> questionAnswers = new ArrayList<QuestionAnswer>(); for (Question question : surveyDefinitionPage.getQuestions()) { questionAnswer = new QuestionAnswer(question); optionsCount = question.getOptions().size(); rowCount = question.getRowLabels().size(); columnCount = question.getColumnLabels().size(); switch (question.getType()) { case YES_NO_DROPDOWN: //Yes No DropDown questionAnswer.setBooleanAnswerValue((rs.getBoolean( "p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); break; case SHORT_TEXT_INPUT: //Short Text Input questionAnswer.setStringAnswerValue((rs.getString( "p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); break; case LONG_TEXT_INPUT: //Long Text Input questionAnswer.setStringAnswerValue((rs.getString( "p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); break; case HUGE_TEXT_INPUT: //Huge Text Input questionAnswer.setStringAnswerValue((rs.getString( "p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); break; case INTEGER_INPUT: //Integer Input questionAnswer.setLongAnswerValue((rs.getLong( "p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); if (rs.wasNull()) questionAnswer.setLongAnswerValue(null); questionAnswer .setStringAnswerValue(questionAnswer.getLongAnswerValue() == null ? "" : questionAnswer.getLongAnswerValue().toString()); break; case CURRENCY_INPUT: //Currency Input questionAnswer.setBigDecimalAnswerValue((rs.getBigDecimal( "p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); questionAnswer.setStringAnswerValue( questionAnswer.getBigDecimalAnswerValue() == null ? "" : CurrencyValidator.getInstance().format( questionAnswer.getBigDecimalAnswerValue(), LocaleContextHolder.getLocale())); break; case DECIMAL_INPUT: //Decimal Input questionAnswer.setBigDecimalAnswerValue((rs.getBigDecimal( "p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); questionAnswer.setStringAnswerValue( questionAnswer.getBigDecimalAnswerValue() == null ? "" : BigDecimalValidator.getInstance().format( questionAnswer.getBigDecimalAnswerValue(), LocaleContextHolder.getLocale())); break; case DATE_INPUT: //Date Input questionAnswer.setDateAnswerValue((rs.getDate( "p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); questionAnswer .setStringAnswerValue(questionAnswer.getDateAnswerValue() == null ? "" : DateValidator.getInstance().format( questionAnswer.getDateAnswerValue(), dateFormat)); break; case SINGLE_CHOICE_DROP_DOWN: //Single choice Drop Down questionAnswer.setStringAnswerValue((rs.getString( "p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); break; case MULTIPLE_CHOICE_CHECKBOXES: //Multiple Choice Checkboxes integerAnswerValuesArray = new Integer[optionsCount]; int index = 0; for (int o = 1; o <= optionsCount; o++) { if (rs.getBoolean("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "o" + o)) { integerAnswerValuesArray[index] = o; index++; } } questionAnswer.setIntegerAnswerValuesArray(integerAnswerValuesArray); //other text data questionAnswer.setOtherStringAnswerValue( (rs.getString("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "text"))); break; case DATASET_DROP_DOWN: //DataSet Drop Down questionAnswer.setStringAnswerValue((rs.getString( "p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); break; case SINGLE_CHOICE_RADIO_BUTTONS: //Single Choice Radio Buttons questionAnswer.setStringAnswerValue((rs.getString( "p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); //other text data questionAnswer.setOtherStringAnswerValue( (rs.getString("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "text"))); break; case YES_NO_DROPDOWN_MATRIX://Yes No DropDown Matrix booleanAnswerValuesMatrix = new Boolean[rowCount][columnCount]; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { booleanAnswerValuesMatrix[r - 1][c - 1] = rs .getBoolean("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c); } } questionAnswer.setBooleanAnswerValuesMatrix(booleanAnswerValuesMatrix); break; case SHORT_TEXT_INPUT_MATRIX://Short Text Input Matrix stringAnswerValuesMatrix = new String[rowCount][columnCount]; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { stringAnswerValuesMatrix[r - 1][c - 1] = rs .getString("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c); } } questionAnswer.setStringAnswerValuesMatrix(stringAnswerValuesMatrix); break; case INTEGER_INPUT_MATRIX://Integer Input Matrix stringAnswerValuesMatrix = new String[rowCount][columnCount]; longAnswerValuesMatrix = new Long[rowCount][columnCount]; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { longAnswerValuesMatrix[r - 1][c - 1] = rs .getLong("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c); if (rs.wasNull()) longAnswerValuesMatrix[r - 1][c - 1] = null; stringAnswerValuesMatrix[r - 1][c - 1] = longAnswerValuesMatrix[r - 1][c - 1] == null ? "" : longAnswerValuesMatrix[r - 1][c - 1].toString(); } } questionAnswer.setStringAnswerValuesMatrix(stringAnswerValuesMatrix); questionAnswer.setLongAnswerValuesMatrix(longAnswerValuesMatrix); break; case CURRENCY_INPUT_MATRIX://Currency Input Matrix stringAnswerValuesMatrix = new String[rowCount][columnCount]; bigDecimalAnswerValuesMatrix = new BigDecimal[rowCount][columnCount]; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { bigDecimalAnswerValuesMatrix[r - 1][c - 1] = rs .getBigDecimal("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c); stringAnswerValuesMatrix[r - 1][c - 1] = bigDecimalAnswerValuesMatrix[r - 1][c - 1] == null ? "" : CurrencyValidator.getInstance().format( bigDecimalAnswerValuesMatrix[r - 1][c - 1], LocaleContextHolder.getLocale()); } } questionAnswer.setStringAnswerValuesMatrix(stringAnswerValuesMatrix); questionAnswer.setBigDecimalAnswerValuesMatrix(bigDecimalAnswerValuesMatrix); break; case DECIMAL_INPUT_MATRIX://Decimal Input Matrix stringAnswerValuesMatrix = new String[rowCount][columnCount]; bigDecimalAnswerValuesMatrix = new BigDecimal[rowCount][columnCount]; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { bigDecimalAnswerValuesMatrix[r - 1][c - 1] = rs .getBigDecimal("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c); stringAnswerValuesMatrix[r - 1][c - 1] = bigDecimalAnswerValuesMatrix[r - 1][c - 1] == null ? "" : BigDecimalValidator.getInstance().format( bigDecimalAnswerValuesMatrix[r - 1][c - 1], LocaleContextHolder.getLocale()); } } questionAnswer.setStringAnswerValuesMatrix(stringAnswerValuesMatrix); questionAnswer.setBigDecimalAnswerValuesMatrix(bigDecimalAnswerValuesMatrix); break; case DATE_INPUT_MATRIX://Date Input Matrix stringAnswerValuesMatrix = new String[rowCount][columnCount]; dateAnswerValuesMatrix = new Date[rowCount][columnCount]; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { dateAnswerValuesMatrix[r - 1][c - 1] = rs .getDate("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c); stringAnswerValuesMatrix[r - 1][c - 1] = dateAnswerValuesMatrix[r - 1][c - 1] == null ? "" : DateValidator.getInstance().format( dateAnswerValuesMatrix[r - 1][c - 1], dateFormat); } } questionAnswer.setStringAnswerValuesMatrix(stringAnswerValuesMatrix); questionAnswer.setDateAnswerValuesMatrix(dateAnswerValuesMatrix); break; case STAR_RATING: //Integer Input questionAnswer.setLongAnswerValue((rs.getLong( "p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); if (rs.wasNull()) questionAnswer.setLongAnswerValue(null); questionAnswer .setStringAnswerValue(questionAnswer.getLongAnswerValue() == null ? "" : questionAnswer.getLongAnswerValue().toString()); break; case SMILEY_FACES_RATING: //Integer Input questionAnswer.setLongAnswerValue((rs.getLong( "p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); if (rs.wasNull()) questionAnswer.setLongAnswerValue(null); questionAnswer .setStringAnswerValue(questionAnswer.getLongAnswerValue() == null ? "" : questionAnswer.getLongAnswerValue().toString()); break; } questionAnswers.add(questionAnswer); } page.setQuestionAnswers(questionAnswers); return page; } }); return surveyPage; } catch (Exception e) { log.error(e.getMessage(), e); throw (new RuntimeException(e)); } }
From source file:com.jd.survey.web.pdf.StatisticsPdf.java
private void writeCurrencyMatrixQuestionStatistics(Document document, Question question, List<QuestionStatistic> questionStatistics, String minimumLabel, String maximumLabel, String averageLabel, String standardDeviationLabel) throws Exception { NumberFormat percentFormat = NumberFormat.getPercentInstance(); percentFormat.setMaximumFractionDigits(1); Table statsTable;/* w w w. j a v a 2 s.c o m*/ Cell cell; statsTable = new Table(question.getColumnLabels().size() + 1); statsTable.setWidth(94); statsTable.setBorder(0); statsTable.setOffset(5); statsTable.setPadding(2); statsTable.setDefaultCellBorder(0); //header cell = new Cell(); cell.setBorder(Cell.BOTTOM); statsTable.addCell(cell); for (QuestionColumnLabel columnLabel : question.getColumnLabels()) { cell = new Cell(new Paragraph(columnLabel.getLabel(), boldedFont)); cell.setBorder(Cell.BOTTOM); statsTable.addCell(cell); } int rowIndex = 1; for (QuestionRowLabel rowLabel : question.getRowLabels()) { cell = new Cell(new Paragraph(rowLabel.getLabel(), boldedFont)); cell.setBorder(Cell.RIGHT); if ((rowIndex % 2) == 1) { cell.setBackgroundColor(new Color(244, 244, 244)); } statsTable.addCell(cell); for (QuestionColumnLabel columnLabel : question.getColumnLabels()) { boolean found = false; cell = new Cell(); if ((rowIndex % 2) == 1) { cell.setBackgroundColor(new Color(244, 244, 244)); } for (QuestionStatistic questionStatistic : questionStatistics) { if (questionStatistic.getRowOrder().equals(rowLabel.getOrder()) && questionStatistic.getColumnOrder().equals(columnLabel.getOrder())) { cell.add(new Paragraph( minimumLabel + ": " + CurrencyValidator.getInstance() .format(questionStatistic.getMin(), LocaleContextHolder.getLocale()), normalFont)); cell.add(new Paragraph( maximumLabel + ": " + CurrencyValidator.getInstance() .format(questionStatistic.getMax(), LocaleContextHolder.getLocale()), normalFont)); cell.add(new Paragraph( averageLabel + ": " + CurrencyValidator.getInstance() .format(questionStatistic.getAverage(), LocaleContextHolder.getLocale()), normalFont)); cell.add(new Paragraph(standardDeviationLabel + ": " + CurrencyValidator.getInstance().format( questionStatistic.getSampleStandardDeviation(), LocaleContextHolder.getLocale()), normalFont)); break; } } if (!found) { } statsTable.addCell(cell); } rowIndex++; } document.add(statsTable); }
From source file:com.jd.survey.dao.survey.SurveyDAOImpl.java
/** * Reads a single survey page from the survey data table *///from w w w . ja v a 2 s . c o m @Override public List<SurveyPage> getPages(final Survey survey, final SurveyDefinition surveyDefinition, final String dateFormat) { try { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("select * "); stringBuilder.setLength(stringBuilder.length() - 1); stringBuilder.append(" from survey_data_" + surveyDefinition.getId()); stringBuilder.append(" where survey_id = ?"); List<SurveyPage> surveyPages = this.jdbcTemplate.queryForObject(stringBuilder.toString(), new Object[] { survey.getId() }, new RowMapper<List<SurveyPage>>() { public List<SurveyPage> mapRow(ResultSet rs, int rowNum) throws SQLException { int optionsCount; int rowCount; int columnCount; Integer[] integerAnswerValuesArray; Long[][] longAnswerValuesMatrix; String[][] stringAnswerValuesMatrix; BigDecimal[][] bigDecimalAnswerValuesMatrix; Boolean[][] booleanAnswerValuesMatrix; Date[][] dateAnswerValuesMatrix; List<SurveyPage> pages = new ArrayList<SurveyPage>(); for (SurveyDefinitionPage surveyDefinitionPage : surveyDefinition.getPages()) { SurveyPage page = new SurveyPage(survey, surveyDefinitionPage); page.setVisible((rs.getBoolean("p" + surveyDefinitionPage.getOrder() + "v"))); QuestionAnswer questionAnswer; List<QuestionAnswer> questionAnswers = new ArrayList<QuestionAnswer>(); for (Question question : surveyDefinitionPage.getQuestions()) { questionAnswer = new QuestionAnswer(question); optionsCount = question.getOptions().size(); rowCount = question.getRowLabels().size(); columnCount = question.getColumnLabels().size(); switch (question.getType()) { case YES_NO_DROPDOWN: //Yes No DropDown questionAnswer.setBooleanAnswerValue((rs.getBoolean("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); break; case SHORT_TEXT_INPUT: //Short Text Input questionAnswer.setStringAnswerValue((rs.getString("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); break; case LONG_TEXT_INPUT: //Long Text Input questionAnswer.setStringAnswerValue((rs.getString("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); break; case HUGE_TEXT_INPUT: //Huge Text Input questionAnswer.setStringAnswerValue((rs.getString("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); break; case INTEGER_INPUT: //Integer Input questionAnswer.setLongAnswerValue((rs.getLong("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); questionAnswer.setStringAnswerValue( questionAnswer.getLongAnswerValue() == null ? "" : questionAnswer.getLongAnswerValue().toString()); break; case CURRENCY_INPUT: //Currency Input questionAnswer.setBigDecimalAnswerValue((rs.getBigDecimal("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); questionAnswer.setStringAnswerValue( questionAnswer.getBigDecimalAnswerValue() == null ? "" : CurrencyValidator.getInstance().format( questionAnswer.getBigDecimalAnswerValue(), LocaleContextHolder.getLocale())); break; case DECIMAL_INPUT: //Decimal Input questionAnswer.setBigDecimalAnswerValue((rs.getBigDecimal("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); questionAnswer.setStringAnswerValue( questionAnswer.getBigDecimalAnswerValue() == null ? "" : BigDecimalValidator.getInstance().format( questionAnswer.getBigDecimalAnswerValue(), LocaleContextHolder.getLocale())); break; case DATE_INPUT: //Date Input questionAnswer.setDateAnswerValue((rs.getDate("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); questionAnswer .setStringAnswerValue( questionAnswer.getDateAnswerValue() == null ? "" : DateValidator.getInstance().format( questionAnswer.getDateAnswerValue(), dateFormat)); break; case SINGLE_CHOICE_DROP_DOWN: //Single choice Drop Down questionAnswer.setStringAnswerValue((rs.getString("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); break; case MULTIPLE_CHOICE_CHECKBOXES: //Multiple Choice Checkboxes integerAnswerValuesArray = new Integer[optionsCount]; int index = 0; for (int o = 1; o <= optionsCount; o++) { if (rs.getBoolean("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "o" + o)) { integerAnswerValuesArray[index] = o; index++; } } questionAnswer.setIntegerAnswerValuesArray(integerAnswerValuesArray); //other text data questionAnswer.setOtherStringAnswerValue( (rs.getString("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "text"))); break; case DATASET_DROP_DOWN: //DataSet Drop Down questionAnswer.setStringAnswerValue((rs.getString("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); break; case SINGLE_CHOICE_RADIO_BUTTONS: //Single Choice Radio Buttons questionAnswer.setStringAnswerValue((rs.getString("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); //other text data questionAnswer.setOtherStringAnswerValue( (rs.getString("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "text"))); break; case YES_NO_DROPDOWN_MATRIX://Yes No DropDown Matrix booleanAnswerValuesMatrix = new Boolean[rowCount][columnCount]; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { booleanAnswerValuesMatrix[r - 1][c - 1] = rs .getBoolean("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c); } } questionAnswer.setBooleanAnswerValuesMatrix(booleanAnswerValuesMatrix); break; case SHORT_TEXT_INPUT_MATRIX://Short Text Input Matrix stringAnswerValuesMatrix = new String[rowCount][columnCount]; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { stringAnswerValuesMatrix[r - 1][c - 1] = rs .getString("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c); } } questionAnswer.setStringAnswerValuesMatrix(stringAnswerValuesMatrix); break; case INTEGER_INPUT_MATRIX://Integer Input Matrix stringAnswerValuesMatrix = new String[rowCount][columnCount]; longAnswerValuesMatrix = new Long[rowCount][columnCount]; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { longAnswerValuesMatrix[r - 1][c - 1] = rs .getLong("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c); stringAnswerValuesMatrix[r - 1][c - 1] = longAnswerValuesMatrix[r - 1][c - 1] == null ? "" : longAnswerValuesMatrix[r - 1][c - 1].toString(); } } questionAnswer.setStringAnswerValuesMatrix(stringAnswerValuesMatrix); questionAnswer.setLongAnswerValuesMatrix(longAnswerValuesMatrix); break; case CURRENCY_INPUT_MATRIX://Currency Input Matrix stringAnswerValuesMatrix = new String[rowCount][columnCount]; bigDecimalAnswerValuesMatrix = new BigDecimal[rowCount][columnCount]; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { bigDecimalAnswerValuesMatrix[r - 1][c - 1] = rs .getBigDecimal("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c); stringAnswerValuesMatrix[r - 1][c - 1] = bigDecimalAnswerValuesMatrix[r - 1][c - 1] == null ? "" : CurrencyValidator.getInstance().format( bigDecimalAnswerValuesMatrix[r - 1][c - 1], LocaleContextHolder.getLocale()); } } questionAnswer.setStringAnswerValuesMatrix(stringAnswerValuesMatrix); questionAnswer .setBigDecimalAnswerValuesMatrix(bigDecimalAnswerValuesMatrix); break; case DECIMAL_INPUT_MATRIX://Decimal Input Matrix stringAnswerValuesMatrix = new String[rowCount][columnCount]; bigDecimalAnswerValuesMatrix = new BigDecimal[rowCount][columnCount]; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { bigDecimalAnswerValuesMatrix[r - 1][c - 1] = rs .getBigDecimal("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c); stringAnswerValuesMatrix[r - 1][c - 1] = bigDecimalAnswerValuesMatrix[r - 1][c - 1] == null ? "" : BigDecimalValidator.getInstance().format( bigDecimalAnswerValuesMatrix[r - 1][c - 1], LocaleContextHolder.getLocale()); } } questionAnswer.setStringAnswerValuesMatrix(stringAnswerValuesMatrix); questionAnswer .setBigDecimalAnswerValuesMatrix(bigDecimalAnswerValuesMatrix); break; case DATE_INPUT_MATRIX://Date Input Matrix stringAnswerValuesMatrix = new String[rowCount][columnCount]; dateAnswerValuesMatrix = new Date[rowCount][columnCount]; for (int r = 1; r <= rowCount; r++) { for (int c = 1; c <= columnCount; c++) { dateAnswerValuesMatrix[r - 1][c - 1] = rs .getDate("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder() + "r" + r + "c" + c); stringAnswerValuesMatrix[r - 1][c - 1] = dateAnswerValuesMatrix[r - 1][c - 1] == null ? "" : DateValidator.getInstance().format( dateAnswerValuesMatrix[r - 1][c - 1], dateFormat); } } questionAnswer.setStringAnswerValuesMatrix(stringAnswerValuesMatrix); questionAnswer.setDateAnswerValuesMatrix(dateAnswerValuesMatrix); break; case STAR_RATING: //Integer Input questionAnswer.setLongAnswerValue((rs.getLong("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); if (rs.wasNull()) questionAnswer.setLongAnswerValue(null); questionAnswer.setStringAnswerValue( questionAnswer.getLongAnswerValue() == null ? "" : questionAnswer.getLongAnswerValue().toString()); break; case SMILEY_FACES_RATING: //Integer Input questionAnswer.setLongAnswerValue((rs.getLong("p" + surveyDefinitionPage.getOrder() + "q" + question.getOrder()))); if (rs.wasNull()) questionAnswer.setLongAnswerValue(null); questionAnswer.setStringAnswerValue( questionAnswer.getLongAnswerValue() == null ? "" : questionAnswer.getLongAnswerValue().toString()); break; } questionAnswers.add(questionAnswer); } page.setQuestionAnswers(questionAnswers); pages.add(page); } return pages; } }); return surveyPages; } catch (Exception e) { log.error(e.getMessage(), e); throw (new RuntimeException(e)); } }