public Object readData()

in odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ScenarioDataSource.java [217:278]


  public Object readData(final EdmFunctionImport function, final Map<String, Object> parameters,
      final Map<String, Object> keys) throws ODataNotImplementedException, ODataNotFoundException, EdmException {
    if (function.getName().equals("EmployeeSearch")) {
      if (parameters.get("q") == null) {
        throw new ODataNotFoundException(null);
      } else {
        final List<Employee> found = searchEmployees((String) parameters.get("q"));
        if (null == keys || keys.isEmpty()) {
          return found;
        } else {
          for (final Employee employee : found) {
            if (employee.getId().equals(keys.get("EmployeeId"))) {
              return employee;
            }
          }
        }
        throw new ODataNotFoundException(ODataNotFoundException.ENTITY);
      }

    } else if (function.getName().equals("AllLocations")) {
      return Arrays.asList(getLocations().keySet().toArray());

    } else if (function.getName().equals("AllUsedRoomIds")) {
      List<String> data = new ArrayList<String>();
      for (final Room room : dataContainer.getRooms()) {
        if (!room.getEmployees().isEmpty()) {
          data.add(room.getId());
        }
      }
      if (data.isEmpty()) {
        throw new ODataNotFoundException(null);
      } else {
        return data;
      }

    } else if (function.getName().equals("MaximalAge")) {
      return getOldestEmployee().getAge();

    } else if (function.getName().equals("MostCommonLocation")) {
      return getMostCommonLocation();

    } else if (function.getName().equals("ManagerPhoto")) {
      if (parameters.get("Id") == null) {
        throw new ODataNotFoundException(ODataNotFoundException.ENTITY);
      }
      for (final Manager manager : dataContainer.getManagers()) {
        if (manager.getId().equals(parameters.get("Id"))) {
          return new BinaryData(manager.getImage(), manager.getImageType());
        }
      }
      throw new ODataNotFoundException(ODataNotFoundException.ENTITY);

    } else if (function.getName().equals("AddEmployee")) {
        return null;

    }  else if (function.getName().equals("OldestEmployee")) {
      return getOldestEmployee();

    } else {
      throw new ODataNotImplementedException();
    }
  }