1 package com.github.mygreen.supercsv.cellprocessor.format;
2
3 import java.util.Optional;
4
5 import org.supercsv.cellprocessor.ift.CellProcessor;
6 import org.supercsv.cellprocessor.ift.StringCellProcessor;
7
8 import com.github.mygreen.supercsv.builder.BuildCase;
9 import com.github.mygreen.supercsv.builder.Configuration;
10 import com.github.mygreen.supercsv.builder.FieldAccessor;
11 import com.github.mygreen.supercsv.cellprocessor.ProcessorFactory;
12
13
14
15
16
17
18
19
20 public class PrintProcessorFactory<T> implements ProcessorFactory {
21
22 @Override
23 public Optional<CellProcessor> create(final Optional<CellProcessor> next, final FieldAccessor field,
24 final TextFormatter<?> formatter, final Configuration config,
25 final BuildCase buildCase, final Class<?>[] groups) {
26
27 @SuppressWarnings("unchecked")
28 final TextFormatter<T> typeFormatter = (TextFormatter<T>)formatter;
29
30 final PrintProcessor<T> processor = next.map(n -> new PrintProcessor<>(typeFormatter, (StringCellProcessor)n))
31 .orElseGet(() -> new PrintProcessor<>(typeFormatter));
32
33 return Optional.of(processor);
34
35 }
36
37 }