|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.univocity.parsers.annotations.HeaderTransformer
public abstract class HeaderTransformer
A transformer of headers used in Nested attributes. Used to reassign header names/indexes of
attributes of a Nested class which is useful when multiple Nested attributes of the same type are
used within a class. For example, consider the Wheel class defined as:
public class Wheel { @Parsed String brand; @Parsed int miles; }
Car which has four Wheels:
public static class Car { @Nested Wheel frontLeft; @Nested Wheel frontRight; @Nested Wheel rearLeft; @Nested Wheel rearRight; }
HeaderTransformer allows us to "rename" the attributes of each different Wheel of the Car
so that input columns can be assigned to the appropriate places.
Assuming an input with headers frontLeftWheelBrand,frontLeftWheelMiles,frontRightWheelBrand,frontRightWheelMiles,rearLeftWheelBrand,rearLeftWheelMiles,rearRightWheelBrand,rearRightWheelMiles,
a HeaderTransformer can be created like this to assign a prefix in front of the header names derived from Wheel (originally just "brand" and "miles"):
public static class PrefixTransformer extends HeaderTransformer { private String prefix; public PrefixTransformer(String... args) { prefix = args[0]; } @Override public String transformName(Field field, String name) { return prefix + Character.toUpperCase(name.charAt(0)) + name.substring(1); } }
Car class as:
public static class Car { @Nested(headerTransformer = PrefixTransformer.class, args = "frontLeftWheel") Wheel frontLeft; @Nested(headerTransformer = PrefixTransformer.class, args = "frontRightWheel") Wheel frontRight; @Nested(headerTransformer = PrefixTransformer.class, args = "rearLeftWheel") Wheel rearLeft; @Nested(headerTransformer = PrefixTransformer.class, args = "rearRightWheel") Wheel rearRight; }
frontLeft fields ("brand" and "miles") with "frontLeftWheel", effectively
forming the header "frontLeftWheelBrand" and "frontLeftWheelMiles", which will match the input headers and assign the
correct values to the correct Wheel instance.
IMPORTANT It is mandatory to define a constructor that takes String[] as a parameter. The actual
parameter values come from Nested.args() to allow custom configuration of the concrete HeaderTransformer instance.
| Constructor Summary | |
|---|---|
HeaderTransformer()
|
|
| Method Summary | |
|---|---|
int |
transformIndex(AnnotatedElement element,
int index)
|
int |
transformIndex(Field field,
int index)
Transforms a header index |
int |
transformIndex(Method method,
int index)
Transforms a header index |
String |
transformName(AnnotatedElement element,
String name)
|
String |
transformName(Field field,
String name)
Transforms a header name |
String |
transformName(Method method,
String name)
Transforms a header name |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public HeaderTransformer()
| Method Detail |
|---|
public final String transformName(AnnotatedElement element,
String name)
public final int transformIndex(AnnotatedElement element,
int index)
public String transformName(Field field,
String name)
field - the field of a Nested class whose header will be transformedname - the current header name associated with the field of the Nested class
public int transformIndex(Field field,
int index)
field - the field of a Nested class whose header will be transformedindex - the current column position associated with the field of the Nested class
public String transformName(Method method,
String name)
method - the method of a Nested class whose header will be transformedname - the current header name associated with the method of the Nested class
public int transformIndex(Method method,
int index)
method - the method of a Nested class whose header will be transformedindex - the current column position associated with the method of the Nested class
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||