in odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ScenarioDataSource.java [483:542]
public void deleteRelation(final EdmEntitySet sourceEntitySet, final Object sourceData,
final EdmEntitySet targetEntitySet, final Map<String, Object> targetKeys) throws ODataNotImplementedException,
ODataNotFoundException, EdmException, ODataApplicationException {
if (ENTITYSET_1_1.equals(targetEntitySet.getName())) {
if (ENTITYSET_1_2.equals(sourceEntitySet.getName())) {
for (Iterator<Employee> iterator = ((Team) sourceData).getEmployees().iterator(); iterator.hasNext();) {
final Employee employee = iterator.next();
if (employee.getId().equals(targetKeys.get("EmployeeId"))) {
employee.setTeam(null);
iterator.remove();
}
}
} else if (ENTITYSET_1_3.equals(sourceEntitySet.getName())) {
for (Iterator<Employee> iterator = ((Room) sourceData).getEmployees().iterator(); iterator.hasNext();) {
final Employee employee = iterator.next();
if (employee.getId().equals(targetKeys.get("EmployeeId"))) {
employee.setRoom(null);
iterator.remove();
}
}
} else if (ENTITYSET_1_4.equals(sourceEntitySet.getName())) {
for (Iterator<Employee> iterator = ((Manager) sourceData).getEmployees().iterator(); iterator.hasNext();) {
final Employee employee = iterator.next();
if (employee.getId().equals(targetKeys.get("EmployeeId"))) {
employee.setManager(null);
iterator.remove();
}
}
}
} else if (ENTITYSET_1_2.equals(targetEntitySet.getName())) {
((Employee) sourceData).getTeam().getEmployees().remove(sourceData);
((Employee) sourceData).setTeam(null);
} else if (ENTITYSET_1_3.equals(targetEntitySet.getName())) {
if (ENTITYSET_1_1.equals(sourceEntitySet.getName())) {
((Employee) sourceData).getRoom().getEmployees().remove(sourceData);
((Employee) sourceData).setRoom(null);
} else if (ENTITYSET_1_5.equals(sourceEntitySet.getName())) {
for (Iterator<Room> iterator = ((Building) sourceData).getRooms().iterator(); iterator.hasNext();) {
final Room room = iterator.next();
if (room.getId().equals(targetKeys.get("Id"))) {
room.setBuilding(null);
iterator.remove();
}
}
}
} else if (ENTITYSET_1_4.equals(targetEntitySet.getName())) {
((Employee) sourceData).getManager().getEmployees().remove(sourceData);
((Employee) sourceData).setManager(null);
} else if (ENTITYSET_1_5.equals(targetEntitySet.getName())) {
((Room) sourceData).getBuilding().getRooms().remove(sourceData);
((Room) sourceData).setBuilding(null);
} else {
throw new ODataNotImplementedException();
}
}