package com.constellio.data.dao.services.recovery.transactionWriter; import java.util.List; import java.util.Map; import org.apache.solr.common.SolrDocument; import org.apache.solr.common.SolrDocumentBase; import org.apache.solr.common.SolrInputDocument; import com.constellio.data.dao.services.bigVault.solr.BigVaultServerTransaction; import com.constellio.data.dao.services.transactionLog.writer1.TransactionWriterV1; import com.constellio.data.extensions.DataLayerSystemExtensions; import org.apache.solr.common.SolrInputField; public class RecoveryTransactionWriter extends TransactionWriterV1 { public RecoveryTransactionWriter(boolean writeZZRecords, DataLayerSystemExtensions extensions) { super(writeZZRecords, extensions); } @Override protected void appendDeletedByQuery(StringBuilder stringBuilder, String deletedByQuery) { throw new RuntimeException("Delete by query not supported in recovery mode"); } @Override public String toLogEntry(BigVaultServerTransaction transaction) { if (transaction.getDeletedQueries() != null && !transaction.getDeletedQueries().isEmpty()) { throw new RuntimeException("Delete by query not supported in recovery mode"); } StringBuilder stringBuilder = new StringBuilder("--transaction--\n"); for (SolrInputDocument solrDocument : transaction.getUpdatedDocuments()) { appendAddUpdateSolrDocument(stringBuilder, solrDocument); } return stringBuilder.toString(); } public String addAllSolrDocuments(List<Object> documents) { StringBuilder stringBuilder = new StringBuilder("--transaction--\n"); for (Object document : documents) { if (document instanceof SolrDocumentBase) { appendAddUpdateSolrDocument(stringBuilder, (SolrDocumentBase) document); } else { throw new RuntimeException("Expecting solr document or solr input document : " + document.getClass().getName()); } } return stringBuilder.toString(); } }