public void writeRelation()

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();
    }
  }