public static EntityInfoBuilder<SomeEntity> createBuilderForSomeEntity() { EntityInfoBuilder<SomeEntity> entityBuilder = new EntityInfoBuilder<>(SomeEntity.class); entityBuilder.addFields("name", "age"); return entityBuilder; }
public static void main(String[] args) throws FileNotFoundException, IOException { CitiBikeReader<Trip> reader = new CitiBikeReader<>("/tmp", str -> new TripParser(str)); EntityInfoBuilder<Trip> entityInfo = new EntityInfoBuilder<>(Trip.class); entityInfo.addFields("bikeId", "tripduration", "starttime", "startStationId", "stoptime", "endStationId", "userType", "birthYear", "gender"); CsvConfiguration<Trip> csvConfiguration = new Builder<Trip>(entityInfo.build()).build(); CsvWriter<Trip> csvWriter = new CsvWriter<>(csvConfiguration); try (FileOutputStream fos = new FileOutputStream(new File("/tmp/trips.csv"))) { reader.forEachCsvInZip(trips -> { try { csvWriter.writeAll(fos, trips); } catch (IOException e) { e.printStackTrace(); } }); } }
public static void main(String[] args) throws FileNotFoundException, IOException { CitiBikeReader<Trip> reader = new CitiBikeReader<>("/tmp", str -> new TripParser(str)); EntityInfoBuilder<Trip> entityInfo = new EntityInfoBuilder<>(Trip.class); entityInfo.addFields("bikeId", "starttime", "startStationId", "stoptime", "endStationId", "userType"); CsvConfiguration<Trip> csvConfiguration = new Builder<>(Trip.class) .entityInfo(entityInfo.build()) .alwaysDelimitText(true) .fieldSeparator(';') .lineDelimiter("\n") .textDelimiter('\'') .header(false) .build(); CsvWriter<Trip> csvWriter = new CsvWriter<>(csvConfiguration); try (FileOutputStream fos = new FileOutputStream(new File("/tmp/trips.csv"))) { reader.forEachCsvInZip(trips -> { try { csvWriter.writeAll(fos, trips); } catch (IOException e) { e.printStackTrace(); } }); } }
@Test public void testAddMultipleFields() { EntityInfoBuilder<SimpleEntity> builder = new EntityInfoBuilder<>(SimpleEntity.class, "simple_entity"); builder.addFields("name", "birthDay"); EntityInfoHelper entityInfo = new EntityInfoHelper(builder); ColumnInfo columnName = entityInfo.findColumn("name"); assertEquals("name", columnName.getColumnName()); assertEquals(simple.getName(), columnName.getAccessor().apply(simple)); ColumnInfo columnBirthday = entityInfo.findColumn("birthday"); assertEquals("birthday", columnBirthday.getColumnName()); assertEquals(simple.getBirthDay(), columnBirthday.getAccessor().apply(simple)); }
@Test public void canChangeDefaultSerializer() throws IOException { EntityInfoBuilder<SomeEntity> entityBuilder = new EntityInfoBuilder<>(SomeEntity.class); entityBuilder.addFields("name", "age"); entityBuilder.addColumn("adult", FieldTypeEnum.BOOLEAN, e -> e.getAge() >= 18); BaseTypeSerializer serializer = new BaseTypeSerializer(); serializer.add(FieldTypeEnum.BOOLEAN, (obj) -> ((Boolean) obj).booleanValue() ? "1" : "0"); Builder<SomeEntity> config = new Builder<>(entityBuilder.build()); config.typeSerializer(serializer); String result = writeCsvToString(config.build(), new SomeEntity("John", 10), new SomeEntity("Amanda", 34)); assertEquals("name,age,adult" + ls + "John,10,0" + ls + "Amanda,34,1" + ls, result); }
@Test public void canCreateSyntheticColumns() throws IOException { EntityInfoBuilder<SomeEntity> entityBuilder = new EntityInfoBuilder<>(SomeEntity.class); entityBuilder.addFields("name", "age"); entityBuilder.addColumn("adult", FieldTypeEnum.BOOLEAN, e -> e.getAge() >= 18); CsvConfiguration<SomeEntity> config = new CsvConfiguration<>(entityBuilder.build()); String result = writeCsvToString(config, new SomeEntity("John", 10), new SomeEntity("Amanda", 34)); assertEquals("name,age,adult" + ls + "John,10,false" + ls + "Amanda,34,true" + ls, result); }