Example usage for org.apache.commons.validator.routines CurrencyValidator getInstance

List of usage examples for org.apache.commons.validator.routines CurrencyValidator getInstance

Introduction

In this page you can find the example usage for org.apache.commons.validator.routines CurrencyValidator getInstance.

Prototype

public static BigDecimalValidator getInstance() 

Source Link

Document

Return a singleton instance of this validator.

Usage

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));
    }
}