Stroika Library 3.0d18
 
Loading...
Searching...
No Matches
Projection.cpp
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
4#include "Stroika/Foundation/StroikaPreComp.h"
5
6#include "Projection.h"
7
8using namespace Stroika::Foundation;
9
10using namespace Database;
11using namespace Database::Document;
12
13/*
14 ********************************************************************************
15 *************************** Document::Projection *******************************
16 ********************************************************************************
17 */
18Database::Document::Document Projection::Apply (const Database::Document::Document& d) const
19{
21 if (const Set<String>* i0 = get_if<0> (&this->fFields_)) { // eOmit
22 vv.RemoveAll (*i0);
23 }
24 else if (const Set<String>* i1 = get_if<1> (&this->fFields_)) { // eInclude
25 vv.RetainAll (*i1);
26 }
27 return vv;
28}
nonvirtual void RemoveAll()
RemoveAll removes all, or all matching (predicate, iterator range, equals comparer or whatever) items...
Definition Mapping.inl:240
nonvirtual void RetainAll(const ITERABLE_OF_KEY_TYPE &items)
Set<T> is a container of T, where once an item is added, additionally adds () do nothing.
nonvirtual Database::Document::Document Apply(const Database::Document::Document &d) const