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)));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 6
0
        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);
        }