/**
*
*/
package org.lemsml.jlems.api;
import org.lemsml.jlems.api.interfaces.IStateIdentifier;
import org.lemsml.jlems.api.interfaces.IStateRecord;
/**
* @author matteocantarelli
*
*/
public class StateRecord implements IStateRecord
{
private IStateIdentifier _state;
private int _startTimeStep;
private int _endTimeStep;
public StateRecord(IStateIdentifier state, int startTimeStep, int endTimeStep)
{
super();
this._state = state;
this._startTimeStep = startTimeStep;
this._endTimeStep = endTimeStep;
}
public StateRecord(IStateIdentifier state)
{
super();
this._state = state;
this._startTimeStep = 0;
this._endTimeStep = -1;
}
@Override
public String toString()
{
return "StateRecord ["+ _state + " startTimeStep=" + _startTimeStep + ", endTimeStep=" + _endTimeStep + "]";
}
public StateRecord(IStateIdentifier state, int startTimeStep)
{
super();
this._state = state;
this._startTimeStep = startTimeStep;
this._endTimeStep = -1;
}
/* (non-Javadoc)
* @see org.lemsml.jlems.core.api.interfaces.IStateRecord#getStartRecordingTimeStep()
*/
@Override
public int getStartRecordingTimeStep()
{
return _startTimeStep;
}
/* (non-Javadoc)
* @see org.lemsml.jlems.core.api.interfaces.IStateRecord#getEndRecordingTimeStep()
*/
@Override
public int getEndRecordingTimeStep()
{
return _endTimeStep;
}
/* (non-Javadoc)
* @see org.lemsml.jlems.core.api.interfaces.IStateRecord#getState()
*/
@Override
public IStateIdentifier getState()
{
return _state;
}
@Override
public boolean record(int t)
{
if(t<_startTimeStep)
{
return false;
}
if(_endTimeStep!=-1 && t>_endTimeStep)
{
return false;
}
return true;
}
}