/** * Finds {@link AbstractClassSensorAssignment}s that exists in first profile and not in the * second one. * * @param p1 * First profile * @param p2 * Second profile * @return {@link AbstractClassSensorAssignment}s that exists in first profile and not in the * second one. */ private Collection<AbstractClassSensorAssignment<?>> getAssignmentsDifference(Profile p1, Profile p2) { Collection<AbstractClassSensorAssignment<?>> results1 = getAllSensorAssignments(p1); Collection<AbstractClassSensorAssignment<?>> results2 = getAllSensorAssignments(p2); return CollectionSubtractUtils.subtractSafe(results1, results2); }
/** * Returns all {@link AbstractClassSensorAssignment} that are "removed" as result of this * update. If profile was deactivated then it means that all assignments before the update are * considered for removal. * * @return Returns all {@link AbstractClassSensorAssignment} that are "removed". */ public Collection<AbstractClassSensorAssignment<?>> getRemovedSensorAssignments() { if (isProfileDeactivated()) { // if deactivated then we consider all old assignment to be for removal return getAllSensorAssignments(before); } else if (isProfileActivated()) { // if it was activated then nothing is for removal return Collections.emptyList(); } else { // otherwise find the difference return getAssignmentsDifference(before, after); } }
/** * Returns all {@link AbstractClassSensorAssignment} that are "added" as result of this update. * If profile was activated then it means that all assignments after the update are considered * for adding. * * @return Returns all {@link AbstractClassSensorAssignment} that are "removed". */ public Collection<AbstractClassSensorAssignment<?>> getAddedSensorAssignments() { if (isProfileDeactivated()) { // if it was deactivated then nothing is for adding return Collections.emptyList(); } else if (isProfileActivated()) { // if activated then we consider all new assignment to be for adding return getAllSensorAssignments(after); } else { // otherwise find the difference return getAssignmentsDifference(after, before); } }