IObjectGetter IFluentGetter.Instance(object instance) { var clone = _options .Clone(x => x.LiteMode = LvMode.LITE) .With(x => x.StrictMode = StMode.NORMALE); if (_type.IsAbstract && _type.IsSealed) { return(ObjectVisitorFactoryCore.CreateForStaticType(_type, clone)); } return(ObjectVisitorFactoryCore.CreateForInstance(_type, instance, clone.With(x => x.Repeatable = RpMode.NON_REPEATABLE))); }
IObjectSetter IFluentSetter.NewInstance(bool strictMode) { var clone = _options .Clone(x => x.LiteMode = LvMode.LITE) .With(x => x.StrictMode = strictMode); if (_type.IsAbstract && _type.IsSealed) { return(ObjectVisitorFactoryCore.CreateForStaticType(_type, clone)); } return(ObjectVisitorFactoryCore.CreateForFutureInstance(_type, clone.With(x => x.Repeatable = RpMode.NON_REPEATABLE))); }
IObjectGetter IFluentGetter.InitialValues(IDictionary <string, object> initialValues) { var clone = _options .Clone(x => x.LiteMode = LvMode.LITE) .With(x => x.StrictMode = StMode.NORMALE); if (_type.IsAbstract && _type.IsSealed) { var visitor = ObjectVisitorFactoryCore.CreateForStaticType(_type, clone); visitor.SetValue(initialValues); return(visitor); } return(ObjectVisitorFactoryCore.CreateForFutureInstance(_type, _options.With(x => x.Repeatable = RpMode.NON_REPEATABLE), initialValues)); }
IFluentValueGetter IFluentGetter.Value(string memberName) { if (string.IsNullOrWhiteSpace(memberName)) { throw new ArgumentNullException(nameof(memberName)); } _func1 = t => { var clone = _options .Clone(x => x.LiteMode = LvMode.LITE) .With(x => x.Repeatable = RpMode.NON_REPEATABLE) .With(x => x.StrictMode = StMode.NORMALE); var visitor = ObjectVisitorFactoryCore.CreateForInstance(_type, t, clone); return(new ValueGetter(visitor, memberName)); }; return(this); }
IFluentValueGetter IFluentGetter.Value(FieldInfo fieldInfo) { if (fieldInfo is null) { throw new ArgumentNullException(nameof(fieldInfo)); } _func1 = t => { var clone = _options .Clone(x => x.LiteMode = LvMode.LITE) .With(x => x.Repeatable = RpMode.NON_REPEATABLE) .With(x => x.StrictMode = StMode.NORMALE); var visitor = ObjectVisitorFactoryCore.CreateForInstance(_type, t, clone); return(new ValueGetter(visitor, fieldInfo.Name)); }; return(this); }
IFluentValueSetter IFluentSetter.Value(PropertyInfo propertyInfo) { if (propertyInfo is null) { throw new ArgumentNullException(nameof(propertyInfo)); } _func1 = (t, strictMode) => { var clone = _options .Clone(x => x.LiteMode = LvMode.LITE) .With(x => x.Repeatable = RpMode.NON_REPEATABLE) .With(x => x.StrictMode = strictMode); var visitor = ObjectVisitorFactoryCore.CreateForInstance(_type, t, clone); return(new ValueSetter(visitor, propertyInfo.Name)); }; return(this); }