public CassandraEmailQueryView()

in server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/projections/CassandraEmailQueryView.java [81:174]


    public CassandraEmailQueryView(CqlSession session) {
        this.executor = new CassandraAsyncExecutor(session);

        listMailboxContentBySentAt = session.prepare(selectFrom(TABLE_NAME_SENT_AT)
            .column(MESSAGE_ID)
            .whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
            .orderBy(SENT_AT, DESC)
            .limit(bindMarker(LIMIT_MARKER))
            .build());

        listMailboxContentByReceivedAt = session.prepare(selectFrom(TABLE_NAME_RECEIVED_AT)
            .column(MESSAGE_ID)
            .whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
            .orderBy(RECEIVED_AT, DESC)
            .limit(bindMarker(LIMIT_MARKER))
            .build());

        listMailboxContentSinceSentAt = session.prepare(selectFrom(TABLE_NAME_SENT_AT)
            .column(MESSAGE_ID)
            .whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
            .whereColumn(SENT_AT).isGreaterThanOrEqualTo(bindMarker(SENT_AT))
            .orderBy(SENT_AT, DESC)
            .limit(bindMarker(LIMIT_MARKER))
            .build());

        listMailboxContentSinceReceivedAt = session.prepare(selectFrom(TABLE_NAME_RECEIVED_AT)
            .columns(MESSAGE_ID, SENT_AT)
            .whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
            .whereColumn(RECEIVED_AT).isGreaterThanOrEqualTo(bindMarker(RECEIVED_AT))
            .orderBy(RECEIVED_AT, DESC)
            .build());

        listMailboxContentBeforeReceivedAt = session.prepare(selectFrom(TABLE_NAME_RECEIVED_AT)
            .columns(MESSAGE_ID, SENT_AT)
            .whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
            .whereColumn(RECEIVED_AT).isLessThanOrEqualTo(bindMarker(RECEIVED_AT))
            .orderBy(RECEIVED_AT, DESC)
            .build());

        insertInLookupTable = session.prepare(insertInto(DATE_LOOKUP_TABLE)
            .value(MAILBOX_ID, bindMarker(MAILBOX_ID))
            .value(MESSAGE_ID, bindMarker(MESSAGE_ID))
            .value(SENT_AT, bindMarker(SENT_AT))
            .value(RECEIVED_AT, bindMarker(RECEIVED_AT))
            .build());

        insertSentAt = session.prepare(insertInto(TABLE_NAME_SENT_AT)
            .value(MAILBOX_ID, bindMarker(MAILBOX_ID))
            .value(MESSAGE_ID, bindMarker(MESSAGE_ID))
            .value(SENT_AT, bindMarker(SENT_AT))
            .build());

        insertReceivedAt = session.prepare(insertInto(TABLE_NAME_RECEIVED_AT)
            .value(MAILBOX_ID, bindMarker(MAILBOX_ID))
            .value(MESSAGE_ID, bindMarker(MESSAGE_ID))
            .value(RECEIVED_AT, bindMarker(RECEIVED_AT))
            .value(SENT_AT, bindMarker(SENT_AT))
            .build());

        deleteLookupRecord = session.prepare(deleteFrom(DATE_LOOKUP_TABLE)
            .whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
            .whereColumn(MESSAGE_ID).isEqualTo(bindMarker(MESSAGE_ID))
            .build());

        deleteSentAt = session.prepare(deleteFrom(TABLE_NAME_SENT_AT)
            .whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
            .whereColumn(MESSAGE_ID).isEqualTo(bindMarker(MESSAGE_ID))
            .whereColumn(SENT_AT).isEqualTo(bindMarker(SENT_AT))
            .build());

        deleteReceivedAt = session.prepare(QueryBuilder.deleteFrom(TABLE_NAME_RECEIVED_AT)
            .whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
            .whereColumn(MESSAGE_ID).isEqualTo(bindMarker(MESSAGE_ID))
            .whereColumn(RECEIVED_AT).isEqualTo(bindMarker(RECEIVED_AT))
            .build());

        deleteAllLookupRecords = session.prepare(QueryBuilder.deleteFrom(DATE_LOOKUP_TABLE)
            .whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
            .build());

        deleteAllSentAt = session.prepare(QueryBuilder.deleteFrom(TABLE_NAME_SENT_AT)
            .whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
            .build());

        deleteAllReceivedAt = session.prepare(QueryBuilder.deleteFrom(TABLE_NAME_RECEIVED_AT)
            .whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
            .build());

        lookupDate = session.prepare(selectFrom(DATE_LOOKUP_TABLE)
            .all()
            .whereColumn(MAILBOX_ID).isEqualTo(bindMarker(MAILBOX_ID))
            .whereColumn(MESSAGE_ID).isEqualTo(bindMarker(MESSAGE_ID))
            .build());
    }