private A deserializeEventNotificationRecord()

in aws-lambda-java-serialization/src/main/java/com/amazonaws/services/lambda/runtime/serialization/events/serializers/S3EventSerializer.java [278:304]


    private <A, B, C, D, E, F, G> A deserializeEventNotificationRecord(JSONObject jsonObject,
                                                                       Class<A> eventNotificationRecordClass,
                                                                       Class<B> s3EntityClass,
                                                                       Class<C> s3BucketClass,
                                                                       Class<D> s3ObjectClass,
                                                                       Class<E> requestParametersClass,
                                                                       Class<F> responseElementsClass,
                                                                       Class<G> userIdentityClass) {
        if (jsonObject == null) {
            jsonObject = new JSONObject();
        }
        String awsRegion = jsonObject.optString("awsRegion");
        String eventName = jsonObject.optString("eventName");
        String eventSource = jsonObject.optString("eventSource");
        String eventTime = jsonObject.optString("eventTime");
        String eventVersion = jsonObject.optString("eventVersion");
        E requestParameters = deserializeRequestParameters(jsonObject.optJSONObject("requestParameters"), requestParametersClass);
        F responseElements = deserializeResponseElements(jsonObject.optJSONObject("responseElements"), responseElementsClass);
        B s3 = deserializeS3Entity(jsonObject.optJSONObject("s3"), s3EntityClass, s3BucketClass, s3ObjectClass, userIdentityClass);
        G userIdentity = deserializeUserIdentity(jsonObject.optJSONObject("userIdentity"), userIdentityClass);
        Functions.R9<A, String, String, String, String, String, E, F, B, G> constructor =
                ReflectUtil.loadConstuctor9(eventNotificationRecordClass, true, String.class, String.class,
                        String.class, String.class, String.class, requestParametersClass, responseElementsClass,
                        s3EntityClass, userIdentityClass);
        return constructor.call(awsRegion, eventName, eventSource, eventTime, eventVersion, requestParameters,
                responseElements, s3, userIdentity);
    }