org.mifos.reports.business.validator.AbstractReportParameterValidator.java Source code

Java tutorial

Introduction

Here is the source code for org.mifos.reports.business.validator.AbstractReportParameterValidator.java

Source

/*
 * Copyright (c) 2005-2011 Grameen Foundation USA
 * All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 * implied. See the License for the specific language governing
 * permissions and limitations under the License.
 *
 * See also http://www.apache.org/licenses/LICENSE-2.0.html for an
 * explanation of the license and how it is applied.
 */

package org.mifos.reports.business.validator;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.Transformer;
import org.mifos.framework.servlet.ModifiableParameterServletRequest;
import org.mifos.platform.validations.Errors;
import org.mifos.reports.business.ReportParameterForm;

public abstract class AbstractReportParameterValidator<T extends ReportParameterForm>
        implements ReportParameterValidator<T> {

    private List<String> applicableFilePaths;

    @SuppressWarnings("unchecked")
    public AbstractReportParameterValidator(List<String> applicableFilePaths) {
        this.applicableFilePaths = (List<String>) CollectionUtils.collect(applicableFilePaths, new Transformer() {
            @Override
            public Object transform(Object input) {
                return ((String) input).trim();
            }
        });
    }

    @Override
    public void removeRequestParameters(ModifiableParameterServletRequest modifiedRequest, T form, Errors errors) {
        form.removeRequestParameters(modifiedRequest, errors);
    }

    @Override
    public void validate(T form, Errors errors) {
        form.validate(errors);
    }

    @Override
    public boolean isAFreshRequest(HttpServletRequest request) {
        return buildReportParameterForm(request).isFormEmpty();
    }

    @Override
    public boolean isApplicableToReportFilePath(String reportFilePath) {
        return applicableFilePaths.contains(reportFilePath);
    }
}