Package com.serotonin.m2m2.reports.vo

Source Code of com.serotonin.m2m2.reports.vo.ReportInstance

/*
    Copyright (C) 2014 Infinite Automation Systems Inc. All rights reserved.
    @author Matthew Lohbihler
*/
package com.serotonin.m2m2.reports.vo;

import java.util.Map;

import org.joda.time.DateTime;

import com.serotonin.m2m2.Common;
import com.serotonin.m2m2.db.dao.UserDao;
import com.serotonin.m2m2.i18n.Translations;
import com.serotonin.m2m2.util.DateUtils;
import com.serotonin.m2m2.vo.User;
import com.serotonin.m2m2.web.taglib.Functions;

/**
* @author Matthew Lohbihler
*/
public class ReportInstance {
    public static final int STATE_NOT_STARTED = 1;
    public static final int STATE_STARTED = 2;
    public static final int STATE_FINISHED = 3;
    public static final int STATE_FAILED = 4;

    private int id = Common.NEW_ID;
    private int userId;
    private int reportId;
    private String name;
    private String templateFile;
    private Map<String, String> xidMap;
    private int includeEvents;
    private boolean includeUserComments;
    private long reportStartTime = -1;
    private long reportEndTime = -1;
    private long runStartTime = -1;
    private long runEndTime = -1;
    private int recordCount = -1;
    private boolean preventPurge;

    private Translations translations;

    //For JSP View
    private String username;
   
    public ReportInstance() {
        // no op
    }

    public ReportInstance(ReportVO template) {
        userId = template.getUserId();
        reportId = template.getId();
        name = template.getName();
        xidMap = template.getXidMapping();
        templateFile = template.getTemplate();
        includeEvents = template.getIncludeEvents();
        includeUserComments = template.isIncludeUserComments();

        UserDao userDao = new UserDao();
        User reportUser = userDao.getUser(userId);
        if(reportUser != null)
          username = reportUser.getUsername();
        else
          username = Common.translate("reports.validate.userDNE");
       
        if (template.getDateRangeType() == ReportVO.DATE_RANGE_TYPE_RELATIVE) {
            if (template.getRelativeDateType() == ReportVO.RELATIVE_DATE_TYPE_PREVIOUS) {
                DateTime date = DateUtils.truncateDateTime(new DateTime(), template.getPreviousPeriodType());
                reportEndTime = date.getMillis();
                date = DateUtils.minus(date, template.getPreviousPeriodType(), template.getPreviousPeriodCount());
                reportStartTime = date.getMillis();
            }
            else {
                DateTime date = new DateTime();
                reportEndTime = date.getMillis();
                date = DateUtils.minus(date, template.getPastPeriodType(), template.getPastPeriodCount());
                reportStartTime = date.getMillis();
            }
        }
        else {
            if (!template.isFromNone()) {
                DateTime date = new DateTime(template.getFromYear(), template.getFromMonth(), template.getFromDay(),
                        template.getFromHour(), template.getFromMinute(), 0, 0);
                reportStartTime = date.getMillis();
            }

            if (!template.isToNone()) {
                DateTime date = new DateTime(template.getToYear(), template.getToMonth(), template.getToDay(),
                        template.getToHour(), template.getToMinute(), 0, 0);
                reportEndTime = date.getMillis();
            }
        }
    }

    public int getState() {
        if (runStartTime == -1)
            return STATE_NOT_STARTED;
        if (runEndTime == -1)
            return STATE_STARTED;
        if (recordCount == -1)
            return STATE_FAILED;
        return STATE_FINISHED;
    }

    public void setTranslations(Translations translations) {
        this.translations = translations;
    }

    public boolean isFromInception() {
        return reportStartTime == -1;
    }

    public boolean isToNow() {
        return reportEndTime == -1;
    }

    public String getPrettyReportStartTime() {
        if (reportStartTime == -1)
            return translations.translate("common.inception");
        return Functions.getFullMinuteTime(reportStartTime);
    }

    public String getPrettyReportEndTime() {
        if (reportEndTime == -1)
            return translations.translate("reports.now");
        return Functions.getFullMinuteTime(reportEndTime);
    }

    public String getPrettyRunStartTime() {
        if (runStartTime == -1)
            return translations.translate("reports.notStarted");
        return Functions.getFullMinuteTime(runStartTime);
    }

    public String getPrettyRunEndTime() {
        if (runStartTime == -1)
            return "";
        if (runEndTime == -1)
            return translations.translate("reports.inProgress");
        return Functions.getFullMinuteTime(runEndTime);
    }

    public String getPrettyRunDuration() {
        if (runStartTime == -1)
            return "";
        if (runEndTime == -1)
            return translations.translate("reports.inProgress");
        return DateUtils.getDuration(runEndTime - runStartTime).translate(translations);
    }

    public String getPrettyRecordCount() {
        if (runStartTime == -1)
            return "";
        if (runEndTime == -1)
            return "";
        if (recordCount == -2)
            return translations.translate("reports.licenseExpired");
        if (recordCount == -1)
            return translations.translate("reports.failed");
        return Integer.toString(recordCount);
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }
   
    public int getReportId() {
      return reportId;
    }
   
    public void setReportId(int reportId) {
      this.reportId = reportId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
   
    public Map<String, String> getXidMap() {
      return xidMap;
    }
   
    public void setXidMap(Map<String, String> xidMap) {
      this.xidMap = xidMap;
    }
   
    public String getTemplateFile() {
      return templateFile;
    }
   
    public void setTemplateFile(String templateFile) {
      this.templateFile = templateFile;
    }

    public int getIncludeEvents() {
        return includeEvents;
    }

    public void setIncludeEvents(int includeEvents) {
        this.includeEvents = includeEvents;
    }

    public boolean isIncludeUserComments() {
        return includeUserComments;
    }

    public void setIncludeUserComments(boolean includeUserComments) {
        this.includeUserComments = includeUserComments;
    }

    public long getReportStartTime() {
        return reportStartTime;
    }

    public void setReportStartTime(long reportStartTime) {
        this.reportStartTime = reportStartTime;
    }

    public long getReportEndTime() {
        return reportEndTime;
    }

    public void setReportEndTime(long reportEndTime) {
        this.reportEndTime = reportEndTime;
    }

    public long getRunStartTime() {
        return runStartTime;
    }

    public void setRunStartTime(long runStartTime) {
        this.runStartTime = runStartTime;
    }

    public long getRunEndTime() {
        return runEndTime;
    }

    public void setRunEndTime(long runEndTime) {
        this.runEndTime = runEndTime;
    }

    public int getRecordCount() {
        return recordCount;
    }

    public void setRecordCount(int recordCount) {
        this.recordCount = recordCount;
    }

    public boolean isPreventPurge() {
        return preventPurge;
    }

    public void setPreventPurge(boolean preventPurge) {
        this.preventPurge = preventPurge;
    }

  public String getUsername() {
    return username;
  }

  public void setUsername(String username) {
    this.username = username;
  }
   
   
}
TOP

Related Classes of com.serotonin.m2m2.reports.vo.ReportInstance

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.