class DocumentTransformer extends DocumentTransformerSupport<Entry<Key,Value>,EventBase> implements WritesQueryMetrics, WritesResultCardinalities,
                Flushable<EventBase> {

    @Override
    public EventBase transform(Entry<Key,Value> entry) throws EmptyObjectException {
        
        Entry<Key,Document> documentEntry = deserializer.apply(entry);
        for (DocumentTransform transform : transforms) {
            if (documentEntry != null) {
                documentEntry = transform.apply(documentEntry);
            } else {
                break;
            }
        }
        
        return _transform(documentEntry);
    }

    public  DocumentTransformer(BaseQueryLogic<Entry<Key,Value>> logic, Query settings, MarkingFunctions markingFunctions,
                    ResponseObjectFactory responseObjectFactory);
    public  DocumentTransformer(BaseQueryLogic<Entry<Key,Value>> logic, Query settings, MarkingFunctions markingFunctions,
                    ResponseObjectFactory responseObjectFactory, Boolean reducedResponse);
    public  DocumentTransformer(String tableName, Query settings, MarkingFunctions markingFunctions, ResponseObjectFactory responseObjectFactory,
                    Boolean reducedResponse);

}