dpfmanager.shell.interfaces.gui.component.report.ReportsController.java Source code

Java tutorial

Introduction

Here is the source code for dpfmanager.shell.interfaces.gui.component.report.ReportsController.java

Source

/**
 * <h1>ReportsController.java</h1> <p> This program is free software: you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later version; or, at your
 * choice, under the terms of the Mozilla Public License, v. 2.0. SPDX GPL-3.0+ or MPL-2.0+. </p>
 * <p> This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License and the Mozilla Public License for more details. </p> <p> You should
 * have received a copy of the GNU General Public License and the Mozilla Public License along with
 * this program. If not, see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>
 * and at <a href="http://mozilla.org/MPL/2.0">http://mozilla.org/MPL/2.0</a> . </p> <p> NB: for the
 *  statement, include Easy Innova SL or other company/Person contributing the code. </p> <p> 
 * 2015 Easy Innova, SL </p>
 *
 * @author Adri Llorens
 * @version 1.0
 * @since 23/7/2015
 */

package dpfmanager.shell.interfaces.gui.component.report;

import dpfmanager.shell.core.DPFManagerProperties;
import dpfmanager.shell.core.mvc.DpfController;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.DirectoryFileFilter;

import java.io.File;
import java.io.FileFilter;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

/**
 * Created by Adri Llorens on 07/03/2016.
 */
public class ReportsController extends DpfController<ReportsModel, ReportsView> {

    public ReportsController() {

    }

    public void loadMoreReports() {
        try {
            getModel().readReports();
            if (getModel().isAllReportsLoaded()) {
                getView().hideLoadMore();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public boolean clearReports(LocalDate date) {
        try {
            File reports = new File(DPFManagerProperties.getReportsDir());
            for (File folder : reports.listFiles((FileFilter) DirectoryFileFilter.DIRECTORY)) {
                LocalDate folderDate = parseFolderName(folder.getName());
                if (folderDate != null && folderDate.isBefore(date)) {
                    FileUtils.deleteDirectory(folder);
                }
            }
            return true;
        } catch (Exception e) {
            return false;
        }
    }

    private LocalDate parseFolderName(String folder) {
        try {
            return LocalDate.parse(folder, DateTimeFormatter.ofPattern("yyyyMMdd"));
        } catch (Exception e) {
            return null;
        }
    }

}