class ConnectRequestMessageProcessor extends AbstractMessageProcessor {

    @Override
    public void process(final ClientConnection deviceConnection, final RequestMetadata requestMetadata)
            throws ProtocolAdapterException {

        final String deviceIdentification = requestMetadata.getDeviceIdentification();
        final String organisationIdentification = requestMetadata.getOrganisationIdentification();

        LOGGER.info("Connect request for IEC60870 device {} for organisation {}", deviceIdentification,
                organisationIdentification);
        LOGGER.info("Starting general interrogation for IEC60870 device {}", deviceIdentification);

        try {
            this.generalInterrogationService.sendGeneralInterrogation(deviceConnection, requestMetadata);

        } catch (final IOException | RuntimeException e) {
            final String message = String.format("Interrogation after connect request for device %s failed.",
                    deviceIdentification);
            throw new ProtocolAdapterException(ComponentType.PROTOCOL_IEC60870, message, e);
        }
    }

    public  ConnectRequestMessageProcessor();

}