public IFieldReader <TItem> Get(Stem <TItem> stem) { var substemCreator = new SubstemEngineSubContextCreator <TItem, TNav, TSubstem>(stem); StemsEngineSubContext <TNav> subContext = substemCreator.GetEngineContext(); return(new SubCollectionFieldReader <TItem, TCollection, TNav>(_navigationExpression, subContext)); }
public IFieldWriter <TItem> Get(Stem <TItem> stem) { var substemCreator = new SubstemEngineSubContextCreator <TItem, TNav, TSubstem>(stem); StemDataChangeEvents <TNav> stemEvents = substemCreator.GetDataChangeEvents(); StemsEngineSubContext <TNav> subContext = substemCreator.GetEngineContext(); MethodSetter <TItem, TNav> setter = MethodSetter <TItem, TNav> .FromDefinition(_definition, stem); var tools = new SubWriterTools <TItem, TNav, TNav>(_navigationExpression, stemEvents, setter); return(new SubItemFieldWriter <TItem, TNav>(tools, subContext)); }