All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.icij.extract.solr.SolrMachineConsumer Maven / Gradle / Ivy

There is a newer version: 7.4.0
Show newest version
package org.icij.extract.solr;

import org.apache.solr.common.SolrDocument;
import org.icij.event.Notifiable;
import org.icij.spewer.FieldNames;

import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Consumer;

public abstract class SolrMachineConsumer implements Consumer {

	private final AtomicInteger consumed = new AtomicInteger();

	String idField = FieldNames.DEFAULT_ID_FIELD;
	private Notifiable notifiable = null;

	@Override
	public void accept(final SolrDocument input) {
		try {
			consume(input);
		} catch (Exception e) {
			throw new RuntimeException(e);
		} finally {
			if (null != notifiable) {
				notifiable.notifyListeners(input);
			}
		}

		consumed.incrementAndGet();
	}

	protected abstract void consume(final SolrDocument input) throws Exception;

	public void setIdField(final String idField) {
		this.idField = idField;
	}

	public String getIdField() {
		return idField;
	}

	public int getConsumeCount() {
		return consumed.get();
	}

	public void setNotifiable(final Notifiable notifiable) {
		this.notifiable = notifiable;
	}

	public Notifiable getNotifiable() {
		return notifiable;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy