@Override
  public OneDriveItem.Metadata next() throws OneDriveRuntimeException {
    JsonObject nextObject = jsonObjectIterator.next();
    String id = nextObject.get("id").asString();

    OneDriveItem.Metadata nextMetadata;
    if (nextObject.get("folder") != null && !nextObject.get("folder").isNull()) {
      OneDriveFolder folder = new OneDriveFolder(api, id);
      nextMetadata = folder.new Metadata(nextObject);
    } else if (nextObject.get("file") != null && !nextObject.get("file").isNull()) {
      OneDriveFile file = new OneDriveFile(api, id);
      nextMetadata = file.new Metadata(nextObject);
    } else {
      throw new OneDriveRuntimeException("The object type is currently not handled.");
    }
    return nextMetadata;
  }
 @Override
 public boolean hasNext() throws OneDriveRuntimeException {
   return jsonObjectIterator.hasNext();
 }