package org.peerbox.watchservice.states;
import org.hive2hive.core.exceptions.NoPeerConnectionException;
import org.hive2hive.core.exceptions.NoSessionException;
import org.hive2hive.processframework.exceptions.InvalidProcessStateException;
import org.peerbox.app.manager.file.IFileManager;
import org.peerbox.watchservice.IAction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class EstablishedState extends AbstractActionState{
private static final Logger logger = LoggerFactory.getLogger(EstablishedState.class);
public EstablishedState(IAction action) {
super(action, StateType.ESTABLISHED);
}
@Override
public ExecutionHandle execute(IFileManager fileManager) throws NoSessionException,
NoPeerConnectionException, InvalidProcessStateException {
logger.trace("Execute in the ESTABLISHED state: {}", action.getFile().getPath());
return null;
}
@Override
public AbstractActionState changeStateOnLocalCreate() {
logStateTransition(getStateType(), EventType.LOCAL_CREATE, StateType.ESTABLISHED);
return this;
}
@Override
public AbstractActionState changeStateOnRemoteCreate() {
logStateTransition(getStateType(), EventType.REMOTE_CREATE, StateType.REMOTE_UPDATE);
return new RemoteUpdateState(action);
}
}