public override void AcceptVisitor(IMappingModelVisitor visitor) { visitor.ProcessCollection(this); if (Key != null) { visitor.Visit(Key); } if (Index != null && (Collection == Collection.Array || Collection == Collection.List || Collection == Collection.Map)) { visitor.Visit(Index); } if (Element != null) { visitor.Visit(Element); } if (CompositeElement != null) { visitor.Visit(CompositeElement); } if (Relationship != null) { visitor.Visit(Relationship); } foreach (var filter in Filters) { visitor.Visit(filter); } if (Cache != null) { visitor.Visit(Cache); } }