code: static DataModelDto toDataModelDto(final IDataModel dataModel) {
  
          Map<String, Object> names = dataModel.getNamedAddresses()
                  .entrySet()
                  .stream()
                  .collect(Collectors.toMap(
                              e -> e.getKey(),
                              e -> e.getValue().address()));
  
          dataModel.getNamedValues().forEach( (k,v) -> names.put(k, v.get()) );
  
          Map<String, Object> table = new HashMap<>();
          Map<String, Object> result = new HashMap<>();
          
          for (IDmRow r : dataModel) {
              for (IDmCell c : r) {
                  ICellAddress address = c.getAddress();
                  
                  table.put(address.a1Address().address(), c.getContent().get());
  
                  if (c.getValue().isPresent()) {
                      result.put(address.a1Address().address(), c.getValue().get().get());
                  }
              }
          }
  
          DataModelDto dto = new DataModelDto();
          
          dto.names = names;
          dto.table = table;
          dto.result = result;
          
          dto.dataModelId = dataModel.getDataModelId().toString();
          dto.name = dataModel.getName();
          
          return dto;
      }
docs: Converts {@link IDataModel} to {@link DataModelDto}.