@Override public int hashCode() { return new HashCodeBuilder().append(getEntryDate()) .append(getProjectAssignment()).toHashCode(); }
@Override public String toString() { return new ToStringBuilder(this).append("entryDate", getEntryDate()) .append("assignment", getProjectAssignment()) .toString(); }
@Override public boolean equals(Object other) { if ((this == other)) { return true; } if (!(other instanceof TimesheetEntryId)) { return false; } TimesheetEntryId castOther = (TimesheetEntryId) other; return new EqualsBuilder().append(this.getEntryDate(), castOther.getEntryDate()) .append(this.getProjectAssignment(), castOther.getProjectAssignment()).isEquals(); }
private Map<ProjectAssignment, List<TimesheetEntry>> getTimesheetAsRows(Collection<TimesheetEntry> entries) { Map<ProjectAssignment, List<TimesheetEntry>> timesheetRows = new HashMap<>(); for (TimesheetEntry timesheetEntry : entries) { ProjectAssignment assignment = timesheetEntry.getEntryId().getProjectAssignment(); List<TimesheetEntry> assignmentEntries = (timesheetRows.containsKey(assignment)) ? timesheetRows.get(assignment) : new ArrayList<TimesheetEntry>(); assignmentEntries.add(timesheetEntry); timesheetRows.put(assignment, assignmentEntries); } return timesheetRows; }
private Map<ProjectAssignment, Map<String, TimesheetEntry>> createAssignmentMap() { Map<ProjectAssignment, Map<String, TimesheetEntry>> assignmentMap = new HashMap<>(); for (TimesheetEntry entry : getTimesheetEntries()) { ProjectAssignment assignment = entry.getEntryId().getProjectAssignment(); Map<String, TimesheetEntry> entryDateMap = assignmentMap.containsKey(assignment) ? assignmentMap.get(assignment) : new HashMap<String, TimesheetEntry>(); entryDateMap.put(formatter.format(entry.getEntryId().getEntryDate()), entry); assignmentMap.put(assignment, entryDateMap); } return assignmentMap; }
/** * @see java.lang.Comparable#compareTo(Object) */ public int compareTo(TimesheetEntryId object) { return new CompareToBuilder() .append(this.getProjectAssignment(), object.getProjectAssignment()) .append(this.getEntryDate(), object.getEntryDate()) .toComparison(); } }
private void persistEntries(ProjectAssignment assignment, List<TimesheetEntry> entries, DateRange weekRange, boolean onlyLessThanExisting, List<Date> lockedDates) throws OverBudgetException { List<TimesheetEntry> previousEntries = Lists.newArrayList(timesheetDAO.getTimesheetEntriesInRange(assignment, weekRange)); for (TimesheetEntry entry : entries) { if (!entry.getEntryId().getProjectAssignment().equals(assignment)) { LOGGER.error("Invalid entry in assignment list, skipping: " + entry); previousEntries.remove(entry); continue; } if (lockedDates.contains(entry.getEntryId().getEntryDate())) { LOGGER.error("Date is locked but still trying to update " + entry); previousEntries.remove(entry); continue; } if (!entry.isEmptyEntry()) { persistEntry(onlyLessThanExisting, entry, getEntry(previousEntries, entry)); previousEntries.remove(entry); } } removeOldEntries(previousEntries); }
@Test public void should_process_column_with_embeddable() throws InstantiationException, IllegalAccessException { FieldMap fieldDefinitionMap = FieldMapFactory.buildFieldMapForEntity(TimesheetEntry.class); FieldDefinition fieldDef = fieldDefinitionMap.get("assignment_id"); TimesheetEntry timesheetEntry = TimesheetEntryObjectMother.createTimesheetEntry(1, new Date(), 5f); timesheetEntry.setEntryId(null); Map<Class<?>, Object> embeddables = Maps.newHashMap(); ProjectAssignment projectAssignment = ProjectAssignmentObjectMother.createProjectAssignment(1); fieldDef.process(timesheetEntry, embeddables, projectAssignment); assertEquals(projectAssignment, ((TimesheetEntryId) embeddables.get(TimesheetEntryId.class)).getProjectAssignment()); } }
@Test public void shouldParseTwoTimesheetEntries() throws XMLStreamException, InstantiationException, IllegalAccessException, ImportException { EntityParser parser = createParser("<TIMESHEET_ENTRIES CLASS=\"net.rrm.ehour.domain.TimesheetEntry\">\n<TIMESHEET_ENTRY>\n<ASSIGNMENT_ID>1</ASSIGNMENT_ID>\n<ENTRY_DATE>2007-03-26</ENTRY_DATE>\n<HOURS>8.0</HOURS>\n <COMMENT>jaja</COMMENT>\n </TIMESHEET_ENTRY>\n <TIMESHEET_ENTRY>\n <ASSIGNMENT_ID>2</ASSIGNMENT_ID>\n <ENTRY_DATE>2007-03-26</ENTRY_DATE>\n <HOURS>0.0</HOURS>\n </TIMESHEET_ENTRY>\n </TIMESHEET_ENTRIES>\n", ProjectAssignmentObjectMother.createProjectAssignment(1), 1); keyCache.putKey(ProjectAssignment.class, 1, 1); keyCache.putKey(ProjectAssignment.class, 2, 2); List<TimesheetEntry> result = parser.parse(TimesheetEntry.class, new JoinTables(), status); assertEquals(2, result.size()); assertNotNull(result.get(0).getEntryId().getEntryDate()); assertNotNull(result.get(0).getEntryId().getProjectAssignment()); assertEquals(8.0, result.get(0).getHours(), 0); assertEquals("jaja", result.get(0).getComment()); assertEquals(2, daoValidator.getTotalPersistCount()); }