/*
* LogLine.java
*
* Version: $Revision: 3734 $
*
* Date: $Date: 2009-04-24 04:00:19 +0000 (Fri, 24 Apr 2009) $
*
* Copyright (c) 2002-2009, The DSpace Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of the DSpace Foundation nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*/
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
*
* @param key the key for the statistic
* @param value the value for the 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;
}
/**
* 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)
{
if (date.compareTo(this.getDate()) >= 0)
{
return true;
}
else
{
return false;
}
}
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)
{
if (date.compareTo(this.getDate()) <= 0)
{
return true;
}
else
{
return false;
}
}
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;
}
}