/*
* Jitsi Videobridge, OpenSource video conferencing.
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jitsi.videobridge.log;
/**
* Represents an event to be logged. An event has a name and a list of
* (key, value) pairs. The pairs are represented with the two arrays
* {@link #columns} and {@link #values} (the keys are though of as the names of
* the columns of a table).
*
* @author Boris Grozev
*/
public class Event
{
/**
* The name of this <tt>Event</tt>.
*/
private final String name;
/**
* The column names/keys of this <tt>Event</tt>.
*/
private final String[] columns;
/**
* The values corresponding to the elements of {@link #columns}.
*/
private final Object[] values;
/**
* Whether the local time should be used when this <tt>Event</tt> is being
* logged.
*/
private boolean useLocalTime = true;
/**
* Initializes a new <tt>Event</tt>. The number of elements in
* <tt>columns</tt> and <tt>values</tt> MUST match.
*
* @param name the name of the event.
* @param columns the column names/keys. The number of elements MUST be the
* same as the same number of elements in <tt>values</tt>.
* @param values the values. The number of elements MUST be the same as the
* same number of elements in <tt>columns</tt>.
*/
public Event(String name, String[] columns, Object[] values)
{
this.name = name;
this.columns = columns;
this.values = values;
}
/**
* Gets the name of this <tt>Event</tt>.
* @return the name of this <tt>Event</tt>.
*/
public String getName()
{
return name;
}
/**
* Gets the column names/keys of this <tt>Event</tt>.
* @return the column names/keys of this <tt>Event</tt>.
*/
public String[] getColumns()
{
return columns;
}
/**
* Gets the values corresponding to the column names/keys of this
* <tt>Event</tt>.
* @return the values corresponding to the column names/keys of this
* <tt>Event</tt>.
*/
public Object[] getValues()
{
return values;
}
/**
* Sets the <tt>useLocalTime</tt> flag of this <tt>Event</tt>.
* @param useLocalTime the value to set.
*/
public void setUseLocalTime(boolean useLocalTime)
{
this.useLocalTime = useLocalTime;
}
/**
* Gets the <tt>useLocalTime</tt> flag of this <tt>Event</tt>.
* @return the <tt>useLocalTime</tt> flag of this <tt>Event</tt>.
*/
public boolean useLocalTime()
{
return useLocalTime;
}
}