@Nonnull public JobEvent.Builder toBuilder() { return JobEvent.builder().withId(id) .withType(type) .withStartDateTime(startDateTime) .withEndDateTime(endDateTime) .withName(name) .withDescription(description) .withEarnings(earnings) .withHourlyRate(hourlyRate) .withEvents(toJobEvents(jobEventsXml)); }
@Nonnull private static List<JobEvent> createJobEvents (final @Nonnull LocalDate startDate, final @Nonnull LocalDate endDate, final @Nonnull Money rate) { final List<JobEvent> result = new ArrayList<>(); final long days = startDate.until(endDate, ChronoUnit.DAYS); for (int i = 1; i <= days; i++) { final LocalDateTime s = startDate.plusDays(i - 1).atTime(8, 0).plusMinutes(i * 3); final LocalDateTime e = s.plusMinutes(60 + i * 4); final double hours = s.until(e, ChronoUnit.MINUTES) / 60.0; final BigDecimal earnings = rate.getAmount().multiply(new BigDecimal(hours)); result.add(JobEvent.builder().withId(new Id("" + nextId++)) .withName("Event #" + i) .withDescription("Description of Event #" + i) .withType(JobEvent.Type.TIMED) .withEarnings(new Money(earnings, "EUR")) .withStartDateTime(s) .withEndDateTime(e) .withHourlyRate(rate) .create()); } return result; }
return JobEvent.builder().withId(jobEventConfig.getId("uniqueIdentifier")) .withType(type.getMappedType()) .withStartDateTime(jobEventConfig.getDateTime("jobEventStartDate"))
final JobEvent j1 = JobEvent.builder().withId(new Id("1")) .withName("Consultancy") .withDescription("Consultancy description")