package org.marketcetera.photon;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.util.Date;
import org.marketcetera.util.misc.ClassVersion;
/* $License$ */
/**
* Interface to get the effective session start time and to register for change notifications. The
* session start time is controlled by the {@link PhotonPreferences#TRADING_HISTORY_START_TIME}
* preference. However, the value returned from this class is not only the start time, but also the
* date of the current session.
*
* @author <a href="mailto:will@marketcetera.com">Will Horn</a>
* @version $Id: ISessionStartTimeProvider.java 16154 2012-07-14 16:34:05Z colin $
* @since 1.5.0
*/
@ClassVersion("$Id: ISessionStartTimeProvider.java 16154 2012-07-14 16:34:05Z colin $")
public interface ISessionStartTimeProvider {
/**
* Returns the current session start time. This may be null if the server is disconnected.
*
* @return the current session start time
*/
Date getSessionStartTime();
/**
* @see PropertyChangeSupport#addPropertyChangeListener(PropertyChangeListener)
*/
void addPropertyChangeListener(PropertyChangeListener listener);
/**
* @see PropertyChangeSupport#removePropertyChangeListener(PropertyChangeListener)
*/
void removePropertyChangeListener(PropertyChangeListener listener);
/**
* @see PropertyChangeSupport#addPropertyChangeListener(String, PropertyChangeListener)
*/
void addPropertyChangeListener(String propertyName, PropertyChangeListener listener);
/**
* @see PropertyChangeSupport#removePropertyChangeListener(String, PropertyChangeListener)
*/
void removePropertyChangeListener(String propertyName, PropertyChangeListener listener);
}