anchor.diff:  
   function TBooleanDataProvider.FindDatumByKey(aKey: IVDDatumKey): IVDDatum;
   begin
  -  Result := nil;
  +  Result := FindDatumByStringKey(aKey.AsString);
  +end;
  +
  +function TBooleanDataProvider.FindDatumByStringKey(aStringKey: string): IVDDatum;
  +begin
  +  if aStringKey = BoolToStr(true, true) then
  +    Result := FTrueValue
  +  else
  +    Result := FFalseValue;
   end;
   
   { TBooleanDatum }
   
   constructor TBooleanDatum.Create(aValue: boolean);
   begin
  -  FValue := aValue;
  +  FKey := TBooleanDatumKey.Create(aValue);
  +end;
  +
  +destructor TBooleanDatum.Destroy;
  +begin
  +  FKey.Free;
   end;
   
   function TBooleanDatum.GetDatumKey: IVDDatumKey;
   begin
  -  Result := nil;
  +  Result := Key;
   end;
   
   class procedure TBooleanDatum.FillVirtualFieldDefs(aFieldDefs: TVirtualFieldDefs; aPrefix: String);
  
positive.code:   mVirtualFieldDefs, mVirtualDataSetInterfaces;
  
  type
    { TBooleanDatum }
  
    TBooleanDatum = class ({$IFNDEF FPC}TJavaInterfacedObject, {$ENDIF}IVDDatum)
    strict private
      const FLD_VALUE = 'VALUE';
    strict private
      FValue : boolean;
    public
      constructor Create(aValue : boolean);
      function GetDatumKey : IVDDatumKey;
  
      class procedure FillVirtualFieldDefs (aFieldDefs : TVirtualFieldDefs; aPrefix : String);
      class function GetKeyField : String;
      function GetPropertyByFieldName(aFieldName : String) : Variant;
    end;
  
    { TBooleanDataProvider }
  
negative.code:     function Count : integer;
      function GetDatum(aIndex : integer) : IVDDatum;
      function FindDatumByKey (aKey : IVDDatumKey) : IVDDatum;
      function FindDatumByStringKey (aStringKey : string): IVDDatum;
    end;
  
  implementation
  
  uses
    SysUtils;
  
  { TBooleanDatumKey }
  
  constructor TBooleanDatumKey.Create(aValue: boolean);
  begin
    FValue := aValue;
  end;
  
  procedure TBooleanDatumKey.Assign(aSource: TObject);
  begin
    FValue:= (aSource as TBooleanDatumKey).FValue;
  end;
  
  function TBooleanDatumKey.AsString: string;
  begin
    Result := BoolToStr(FValue, true);
  end;
  
  { TBooleanDataProvider }
  
  