public final void onEvent(Object eventObject, Object[] transportProperties, String[] transportSyncProperties) {
        try {
            if (eventObject != null) {
                if (!allowNullInTransportProperties() && transportProperties != null) {
                    for (Object property : transportProperties) {
                        if (property == null) {
                            log.error("Dropping event " + eventObject.toString() + " belonging to stream " +
                                    streamDefinition.getId()
                                    + " as it contains null transport properties and system "
                                    + "is configured to not allow null transport properties. You can "
                                    + "configure it via source mapper if the respective "
                                    + "mapper type allows it. Refer mapper documentation to verify "
                                    + "supportability");
                            return;
                        }
                    }
                }
                trpProperties.set(transportProperties);
                if (transportSyncProperties != null) {
                    trpSyncProperties.set(transportSyncProperties);
                }
                try {
                    if (throughputTracker != null &&
                            Level.BASIC.compareTo(siddhiAppContext.getRootMetricsLevel()) <= 0) {
                        throughputTracker.eventIn();
                    }
                    if (mapperLatencyTracker != null &&
                            Level.DETAIL.compareTo(siddhiAppContext.getRootMetricsLevel()) <= 0) {
                        mapperLatencyTracker.markIn();
                    }
                    mapAndProcess(eventObject, inputEventHandler);
                    if (logEventCount) {
                        if (firstRun) {
                            receivedEventCounter.scheduleEventCounterLogger();
                            firstRun = false;
                        }
                        receivedEventCounter.countEvents(eventObject);
                    }
                } finally {
                    if (mapperLatencyTracker != null &&
                            Level.DETAIL.compareTo(siddhiAppContext.getRootMetricsLevel()) <= 0) {
                        mapperLatencyTracker.markOut();
                    }
                }
            }
        } catch (MappingFailedException e) {
            ErrorStoreHelper.storeErroneousEvent(siddhiAppContext.getSiddhiContext().getErrorStore(),
                    ErrorOccurrence.BEFORE_SOURCE_MAPPING, siddhiAppContext.getName(), e.getFailures(),
                    streamDefinition.getId());
            log.error("Error while processing '" + eventObject + "', for the input Mapping '" + mapType +
                    "' for the stream '" + streamDefinition.getId() + "'.", e);
        } catch (InterruptedException | RuntimeException e) {
            ErroneousEvent erroneousEvent = new ErroneousEvent(eventObject, e, "Error while processing '" +
                    eventObject + "', for the input Mapping '" + mapType + "' for the stream '" +
                    streamDefinition.getId() + "'.");
            ErrorStoreHelper.storeErroneousEvent(siddhiAppContext.getSiddhiContext().getErrorStore(),
                    ErrorOccurrence.BEFORE_SOURCE_MAPPING, siddhiAppContext.getName(),
                    Collections.singletonList(erroneousEvent), streamDefinition.getId());
            log.error("Error while processing '" + eventObject + "', for the input Mapping '" + mapType +
                    "' for the stream '" + streamDefinition.getId() + "'.", e);
        } finally {
            trpProperties.remove();
            if (transportSyncProperties != null) {
                trpSyncProperties.remove();
            }
        }
    }
Support classes that the source-mapper can consume for mapping processing (used for validation purposes)

@return Supported event classes that mapper can process.
modules/siddhi-core/src/main/java/io/siddhi/core/stream/input/source/SourceMapper.java