/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE and NOTICE files at the root of the source * tree and available online at * * http://www.dspace.org/license/ */ package org.dspace.app.statistics; import java.util.Date; /** * This class represents a single log file line and the operations that can be * performed on it * * The components that it represents are: Date, Level, User, Action, and additional * Params * * @author Richard Jones */ public class LogLine { /** the date of the log file line */ private Date date = null; /** the level of the log line type */ private String level = null; /** the user performing the logged action */ private String user = null; /** the action being performed */ private String action = null; /** the parameters associated with the line */ private String params = null; /** * constructor to create new statistic */ LogLine(Date date, String level, String user, String action, String params) { this.date = date; this.level = level; this.user = user; this.action = action; this.params = params; } /** * get the date of the log line * * @return the date of this log line */ public Date getDate() { return this.date == null ? null : new Date(this.date.getTime()); } /** * get the level of this log line * * @return the level of the log line */ public String getLevel() { return this.level; } /** * get the user performing the logged action * * @return the user performing the logged action */ public String getUser() { return this.user; } /** * get the action being performed * * @return the logged action */ public String getAction() { return this.action; } /** * get the parameters associated with the action * * @return the parameters associated with the action */ public String getParams() { return this.params; } /** * find out if this log file line is before the given date * * @param date the date to be compared to * * @return true if the line is before the given date, false if not */ public boolean beforeDate(Date date) { if (date != null) { return (date.compareTo(this.date) >= 0); } return false; } /** * find out if this log file line is after the given date * * @param date the date to be compared to * * @return true if the line is after the given date, false if not */ public boolean afterDate(Date date) { if (date != null) { return (date.compareTo(this.date) <= 0); } return false; } /** * find out if the log line is of the given level. Levels are either * INFO, WARN or ERROR * * @param level the level we want to test for * * @return true if the line is of the specified level, false if not */ public boolean isLevel(String level) { if (this.getLevel().equals(level)) { return true; } return false; } /** * find out if the log line is of the given action. Actions are not * directly constrained by the vocabulary, and any system module may define * any action name for its behaviour * * @param action the action we want to test for * * @return true if the line is of the specified action, false if not */ public boolean isAction(String action) { if (this.getAction().equals(action)) { return true; } return false; } }