import beof from 'beof';
import RefState from './RefState';
import Concern from './Concern';
import Context from './Context';
/**
* MemoryStateProvider
* @implements {StateProvider}
*/
class MemoryStateProvider {
provide(state, path, concern, context) {
beof({ state }).string();
beof({ path }).string();
beof({ concern }).instance(Concern);
beof({ context }).interface(Context);
if (RefState.hasOwnProperty(state))
return new RefState[state](path, concern, context, this);
throw new ReferenceError(`Unknown state ${state}!`);
}
}
export default MemoryStateProvider