class ConnectionMigrationUtil {

    static Connection connectionFromJsonWithMigration(@Nonnull final JsonObject connectionJsonObject) {
        final UnaryOperator<JsonObject> migrateSourceFilters = new MigrateSourceFilters();
        final UnaryOperator<JsonObject> migrateTopicActionSubjectFilters = new MigrateTopicActionSubjectFilters();
        final UnaryOperator<JsonObject> migrateAuthorizationContexts = new MigrateAuthorizationContexts();

        return ConnectivityModelFactory.connectionFromJson(
                migrateAuthorizationContexts
                        .andThen(migrateSourceFilters)
                        .andThen(migrateTopicActionSubjectFilters)
                        .apply(connectionJsonObject));
    }

    private  ConnectionMigrationUtil();

}