Example usage for com.fasterxml.jackson.dataformat.csv CsvMapper addMixInAnnotations

List of usage examples for com.fasterxml.jackson.dataformat.csv CsvMapper addMixInAnnotations

Introduction

In this page you can find the example usage for com.fasterxml.jackson.dataformat.csv CsvMapper addMixInAnnotations.

Prototype

public final void addMixInAnnotations(Class<?> target, Class<?> mixinSource) 

Source Link

Document

Method to use for adding mix-in annotations to use for augmenting specified class or interface.

Usage

From source file:com.marklogic.client.test.JacksonDatabindTest.java

/** Demonstrate using Jackson's CSV mapper directly to simplify reading in data, populating a 
 * third-party pojo (one we cannot annotate) then writing it out
 * via JacksonDatabindHandle with configuration provided by mix-in annotations.
 **///from  w  ww  . jav  a2  s.co m
@Test
public void testDatabindingThirdPartyPojoWithMixinAnnotations() throws JsonProcessingException, IOException {
    CsvSchema schema = CsvSchema.builder().setColumnSeparator('\t').addColumn("geoNameId").addColumn("name")
            .addColumn("asciiName").addColumn("alternateNames")
            .addColumn("latitude", CsvSchema.ColumnType.NUMBER)
            .addColumn("longitude", CsvSchema.ColumnType.NUMBER).addColumn("featureClass")
            .addColumn("featureCode").addColumn("countryCode").addColumn("countryCode2").addColumn("adminCode1")
            .addColumn("adminCode2").addColumn("adminCode3").addColumn("adminCode4").addColumn("population")
            .addColumn("elevation", CsvSchema.ColumnType.NUMBER).addColumn("dem", CsvSchema.ColumnType.NUMBER)
            .addColumn("timezoneCode").addColumn("lastModified").build();
    CsvMapper mapper = new CsvMapper();
    mapper.addMixInAnnotations(Toponym.class, ToponymMixIn1.class);
    ObjectReader reader = mapper.reader(Toponym.class).with(schema);
    BufferedReader cityReader = new BufferedReader(Common.testFileToReader(CITIES_FILE));
    GenericDocumentManager docMgr = Common.client.newDocumentManager();
    DocumentWriteSet set = docMgr.newWriteSet();
    String line = null;
    for (int numWritten = 0; numWritten < MAX_TO_WRITE
            && (line = cityReader.readLine()) != null; numWritten++) {
        Toponym city = reader.readValue(line);
        JacksonDatabindHandle handle = new JacksonDatabindHandle(city);
        handle.getMapper().addMixInAnnotations(Toponym.class, ToponymMixIn2.class);
        set.add(DIRECTORY + "/thirdPartyJsonCities/" + city.getGeoNameId() + ".json", handle);
    }
    docMgr.write(set);
    cityReader.close();
    // we can add assertions later, for now this test just serves as example code and 
    // ensures no exceptions are thrown
}