You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
773 B
Java

package org.gcube.data.spd.plugin.fwk.writers;
import org.gcube.data.streams.exceptions.StreamSkipSignal;
import org.gcube.data.streams.generators.Generator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public abstract class WriterManager<T> implements Generator<T, T> {
private static final Logger logger = LoggerFactory.getLogger(WriterManager.class);
public T enrich(T obj){ return obj;}
public boolean filter(T obj){return true;}
@Override
public T yield(T element) {
try {
T enrichedElement = this.enrich(element);
if (enrichedElement==null) throw new Exception("error enriching element");
return enrichedElement;
} catch (Exception e) {
logger.debug("skipping the result", e);
throw new StreamSkipSignal();
}
}
}