class DefaultBoltProtocolFactory implements BoltProtocolFactory {

    @Override
    public BoltProtocol create( long protocolVersion, BoltChannel channel )
    {
        if ( protocolVersion == BoltProtocolV1.VERSION )
        {
            return new BoltProtocolV1( channel, connectionFactory, stateMachineFactory, logService );
        }
        else if ( protocolVersion == BoltProtocolV2.VERSION )
        {
            return new BoltProtocolV2( channel, connectionFactory, stateMachineFactory, logService );
        }
        else if ( protocolVersion == BoltProtocolV3.VERSION )
        {
            return new BoltProtocolV3( channel, connectionFactory, stateMachineFactory, logService );
        }
        else
        {
            return null;
        }
    }

    public  DefaultBoltProtocolFactory( BoltConnectionFactory connectionFactory, BoltStateMachineFactory stateMachineFactory,
            LogService logService );

}