public PoolSetter(FieldInfo field, object value)
        {
            this.field = field;
            this.value = value;

            wrapper = field.CreateWrapper();
        }
Exemple #2
0
        public PoolSetter(FieldInfo field, object value)
        {
            this.field = field;
            this.value = value;

            wrapper = field.CreateWrapper();
        }
Exemple #3
0
        public NodeDataField(IFieldWrapper field, IOperaitonManager operationManager)
        {
            field.ThrowIfNullArgument(nameof(field));
            operationManager.ThrowIfNullArgument(nameof(operationManager));

            this.field            = field;
            this.operationManager = operationManager;
        }
Exemple #4
0
        public FieldSymbol(InterField field) : base()
        {
            _field      = field;
            _owningType = field.Owner;
            Field       = new InterFieldWrapper(field);
            ID          = field.Name;

            _initFromInterField = true;
        }
        public FieldSetOperation(IFieldWrapper field, object reference)
        {
            this.field = field;

            referenceValue = field.Get(ref reference);
            type = GetType(referenceValue);
            isValue = type == null ? false : type.IsValueType;
            isPure = type == null || type.IsPure();
            operations = isPure ? null : InitializationUtility.GetInitializer(type).CreateOperations(referenceValue);
        }
Exemple #6
0
        public FieldSetOperation(IFieldWrapper field, object reference)
        {
            this.field = field;

            referenceValue = field.Get(ref reference);
            type           = GetType(referenceValue);
            isValue        = type == null ? false : type.IsValueType;
            isPure         = type == null || type.IsPure();
            operations     = isPure ? null : InitializationUtility.GetInitializer(type).CreateOperations(referenceValue);
        }
        public override void TearDown()
        {
            base.TearDown();

            dummyClass = null;
            dummyStruct = null;
            classValueWrapper = null;
            classReferenceWrapper = null;
            structValueWrapper = null;
            structReferenceWrapper = null;
        }
Exemple #8
0
        public override void TearDown()
        {
            base.TearDown();

            dummyClass             = null;
            dummyStruct            = null;
            classValueWrapper      = null;
            classReferenceWrapper  = null;
            structValueWrapper     = null;
            structReferenceWrapper = null;
        }
        public override void Setup()
        {
            base.Setup();

            dummyClass = new DummyClass { Value = 1, Reference = "2" };
            dummyStruct = new DummyStruct { Value = 3, Reference = "4" };
            classValueWrapper = ReflectionUtility.CreateFieldWrapper(typeof(DummyClass).GetField("Value"));
            classReferenceWrapper = ReflectionUtility.CreateFieldWrapper(typeof(DummyClass).GetField("Reference"));
            structValueWrapper = ReflectionUtility.CreateFieldWrapper(typeof(DummyStruct).GetField("Value"));
            structReferenceWrapper = ReflectionUtility.CreateFieldWrapper(typeof(DummyStruct).GetField("Reference"));
        }
Exemple #10
0
        public override void Bind(IntermediateBuilder context)
        {
            _owner?.Bind(context);
            if (_owningTypeName != TypeName.Unknown)
            {
                _owningType = UserType.ToUserType(context.ResolveType(_owningTypeName));
            }

            if (Field != null)
            {
                Type = Field.Type; return;
            }

            UserType type = (_owningType != null ? _owningType : _owner.Type) as UserType;

            if (_owningType == null)
            {
                _owningType = type;
            }

            IFieldWrapper matchField = null;

            var t = type;

            while (matchField == null && t != CodeType.Object)
            {
                foreach (var f in t.GetFields(context))
                {
                    if (f.Name == ID)
                    {
                        matchField = f; break;
                    }
                }
                if (matchField == null)
                {
                    t = t.GetBaseType();
                }
            }

            _owningType = t;

            //Debug.Assert(matchField != null);

            if (matchField == null)
            {
                return;
            }

            Type  = matchField.Type;
            Field = matchField;
        }
Exemple #11
0
 public void AssertNotDuplicateOf(IFieldWrapper otherConstant)
 {
     if (!HasTheSameNameAs(otherConstant))
     {
         if (HasTheSameValueAs(otherConstant))
         {
             var builder = new StringBuilder();
             AddNameTo(builder);
             builder.Append(" is a duplicate of ");
             otherConstant.AddNameTo(builder);
             throw new DuplicateConstantException(builder.ToString());
         }
     }
 }
Exemple #12
0
        public override void Setup()
        {
            base.Setup();

            dummyClass = new DummyClass {
                Value = 1, Reference = "2"
            };
            dummyStruct = new DummyStruct {
                Value = 3, Reference = "4"
            };
            classValueWrapper      = ReflectionUtility.CreateFieldWrapper(typeof(DummyClass).GetField("Value"));
            classReferenceWrapper  = ReflectionUtility.CreateFieldWrapper(typeof(DummyClass).GetField("Reference"));
            structValueWrapper     = ReflectionUtility.CreateFieldWrapper(typeof(DummyStruct).GetField("Value"));
            structReferenceWrapper = ReflectionUtility.CreateFieldWrapper(typeof(DummyStruct).GetField("Reference"));
        }
Exemple #13
0
        public void TestCreateFieldBuilder()
        {
            NodeDataListBuilder builder = new NodeDataListBuilder(Substitute.For <Type>());

            NodeData nodeData = new NodeData {
                name = "fieldbro"
            };
            IFieldWrapper  fieldWrapper = Substitute.For <IFieldWrapper>();
            IValueParseMap parseMap     = Substitute.For <IValueParseMap>();

            NodeDataBuilder fieldBuilder = Assert.IsType <NodeDataBuilder>(builder.CreateFieldBuilder(nodeData, fieldWrapper, parseMap));

            Assert.Same(nodeData, fieldBuilder.nodeData);
            Assert.Same(fieldWrapper, fieldBuilder.fieldWrapper);
            Assert.Same(parseMap, fieldBuilder.valueParseMap);
        }
        public NodeDataBuilder(NodeData nodeData, IFieldWrapper fieldWrapper, IValueParseMap defaultValueParseMap)
        {
            nodeData.ThrowIfNullArgument(nameof(nodeData));
            fieldWrapper.ThrowIfNullArgument(nameof(fieldWrapper));
            defaultValueParseMap.ThrowIfNullArgument(nameof(defaultValueParseMap));

            this.nodeData     = nodeData;
            this.fieldWrapper = fieldWrapper;

            object[] attributes = fieldWrapper.MemberInfo.GetCustomAttributes(true);

            if (attributes.OfType <IUseParser>().Any())
            {
                IValueParser[] overrides = attributes.OfType <IUseParser>().Select(x => x.CreateParser()).ToArray();
                valueParseMap = new OverrideValueParseMap(defaultValueParseMap, overrides);
            }
            else
            {
                valueParseMap = defaultValueParseMap;
            }
        }
Exemple #15
0
 public virtual INodeDataBuilder CreateFieldBuilder(NodeData nodeData, IFieldWrapper fieldWrapper, IValueParseMap defaultValueParseMap)
 {
     return(new NodeDataBuilder(nodeData, fieldWrapper, defaultValueParseMap));
 }
Exemple #16
0
		public InjectableField(FieldInfo field) : base(field)
		{
			wrapper = field.CreateWrapper();
		}
Exemple #17
0
 public bool HasTheSameNameAs(IFieldWrapper otherConstant)
 {
     return(otherConstant.HasName(_fieldInfo.Name));
 }
Exemple #18
0
 public bool HasTheSameValueAs(IFieldWrapper otherConstant)
 {
     return(otherConstant.HasValue(_fieldInfo.GetValue(null)));
 }
Exemple #19
0
 public InitializableField(FieldInfo field) : base(field)
 {
     wrapper = field.CreateWrapper();
 }