func (c *Transformer) ID() string {
	return c.id
}
ID returns a string that identifies the transformer instance
package jsoncombiner
import (
	"fmt"
	"log"
	"github.com/timescale/outflux/internal/idrf"
	"github.com/timescale/outflux/internal/utils"
)
type Transformer struct {
	id                 string
	columnsToCombine   map[string]bool
	resultColumn       string
	bufferSize         uint16
	cachedInputBundle  *idrf.Bundle
	cachedOutputBundle *idrf.Bundle
	combinedIndexes    map[int]string
	validator          validator
	colColmbiner       columnCombiner
	jsonCreator        jsonCreator
}
func NewTransformer(id string, columnsToCombine []string, resultColumn string) (*Transformer, error) {
	if columnsToCombine == nil || len(columnsToCombine) == 0 {
		return nil, fmt.Errorf("at least one column must be selected for combination")
	}
	if resultColumn == "" {
		return nil, fmt.Errorf("result column can't be an empty string")
	}
	columnsSet := make(map[string]bool)
	for _, colName := range columnsToCombine {
		columnsSet[colName] = true
	}
	return &Transformer{
		id: id, columnsToCombine: columnsSet, resultColumn: resultColumn,
		validator: &defValidator{id: id}, colColmbiner: &defColCombiner{},
	}, nil
}