code: private IdReader<ID> getIdReader()
    {
      if (_idReader != null)
        return _idReader;
  
      Class<?> idType = _entityInfo.id().getJavaType();
  
      if (isInteger(idType)) {
        _idReader = (IdReader<ID>) new IntIdReader();
      }
      else if (long.class == idType || Long.class == idType) {
        _idReader = (IdReader<ID>) new LongIdReader();
      }
      else if (IdAsset.class == idType) {
        _idReader = (IdReader<ID>) new IdAssetReader();
      }
      else if (String.class == idType) {
        _idReader = (IdReader<ID>) new StringIdReader();
      }
      else {
        throw new IllegalStateException(String.valueOf(idType));
      }
  
      return _idReader;
    }
docs: /*
  private ID readIdFromCursor(Cursor c)
  {
  return getIdReader().read(c);
  }