in odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ScenarioDataSource.java [544:612]
public void writeRelation(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())) {
final Employee employee = (Employee) readData(targetEntitySet, targetKeys);
if (ENTITYSET_1_2.equals(sourceEntitySet.getName())) {
if (employee.getTeam() != null) {
employee.getTeam().getEmployees().remove(employee);
}
employee.setTeam((Team) sourceData);
((Team) sourceData).getEmployees().add(employee);
} else if (ENTITYSET_1_3.equals(sourceEntitySet.getName())) {
if (employee.getRoom() != null) {
employee.getRoom().getEmployees().remove(employee);
}
employee.setRoom((Room) sourceData);
((Room) sourceData).getEmployees().add(employee);
} else if (ENTITYSET_1_4.equals(sourceEntitySet.getName())) {
if (employee.getManager() != null) {
employee.getManager().getEmployees().remove(employee);
}
employee.setManager((Manager) sourceData);
((Manager) sourceData).getEmployees().add(employee);
}
} else if (ENTITYSET_1_2.equals(targetEntitySet.getName())) {
final Team team = (Team) readData(targetEntitySet, targetKeys);
if (((Employee) sourceData).getTeam() != null) {
((Employee) sourceData).getTeam().getEmployees().remove(sourceData);
}
((Employee) sourceData).setTeam(team);
team.getEmployees().add((Employee) sourceData);
} else if (ENTITYSET_1_3.equals(targetEntitySet.getName())) {
final Room room = (Room) readData(targetEntitySet, targetKeys);
if (ENTITYSET_1_1.equals(sourceEntitySet.getName())) {
if (((Employee) sourceData).getRoom() != null) {
((Employee) sourceData).getRoom().getEmployees().remove(sourceData);
}
((Employee) sourceData).setRoom(room);
room.getEmployees().add((Employee) sourceData);
} else if (ENTITYSET_1_5.equals(sourceEntitySet.getName())) {
if (room.getBuilding() != null) {
room.getBuilding().getRooms().remove(room);
}
room.setBuilding((Building) sourceData);
((Building) sourceData).getRooms().add(room);
}
} else if (ENTITYSET_1_4.equals(targetEntitySet.getName())) {
final Manager manager = (Manager) readData(targetEntitySet, targetKeys);
if (((Employee) sourceData).getManager() != null) {
((Employee) sourceData).getManager().getEmployees().remove(sourceData);
}
((Employee) sourceData).setManager(manager);
manager.getEmployees().add((Employee) sourceData);
} else if (ENTITYSET_1_5.equals(targetEntitySet.getName())) {
final Building building = (Building) readData(targetEntitySet, targetKeys);
if (((Room) sourceData).getBuilding() != null) {
((Room) sourceData).getBuilding().getRooms().remove(sourceData);
}
((Room) sourceData).setBuilding(building);
building.getRooms().add((Room) sourceData);
} else {
throw new ODataNotImplementedException();
}
}