PropertyModel CreateProperty(String name, BindingProperty property)
        {
            var originalName = property.OriginalName;
            var forwardedTo  = property.ForwardedTo;
            var targetType   = property.ValueType;
            var ignoreSet    = property.AllowSet == false;
            var refName      = name.Capitalize();

            if (forwardedTo != null)
            {
                originalName = String.Concat(originalName, ".", forwardedTo);
                ignoreSet    = false;
                targetType   = typeof(String);
            }

            var getter = new MethodModel
            {
                Name         = name,
                OriginalName = property.OriginalName,
                IsLenient    = property.IsLenient,
                Parameters   = Enumerable.Empty <ParameterModel>(),
                RefName      = "Get" + refName,
                IsVoid       = property.AllowGet == false
            };

            var setter = new MethodModel
            {
                Name         = name,
                OriginalName = originalName,
                IsLenient    = property.IsLenient,
                Parameters   = new []
                {
                    new ParameterModel
                    {
                        Converter     = GetConverter(targetType),
                        Index         = 0,
                        IsOptional    = false,
                        Name          = "value",
                        ParameterType = targetType,
                        IsParams      = false
                    }
                },
                RefName = "Set" + refName,
                IsVoid  = ignoreSet
            };

            return(new PropertyModel
            {
                Name = name,
                Getter = getter,
                Setter = setter
            });
        }
 void IVisitor.Visit(BindingProperty property)
 {
 }
        PropertyModel CreateProperty(String name, BindingProperty property)
        {
            var originalName = property.OriginalName;
            var forwardedTo = property.ForwardedTo;
            var targetType = property.ValueType;
            var ignoreSet = property.AllowSet == false;
            var refName = name.Capitalize();

            if (forwardedTo != null)
            {
                originalName = String.Concat(originalName, ".", forwardedTo);
                ignoreSet = false;
                targetType = typeof(String);
            }

            var getter = new MethodModel
            {
                Name = name,
                OriginalName = property.OriginalName,
                IsLenient = property.IsLenient,
                Parameters = Enumerable.Empty<ParameterModel>(),
                RefName = "Get" + refName,
                IsVoid = property.AllowGet == false
            };

            var setter = new MethodModel
            {
                Name = name,
                OriginalName = originalName,
                IsLenient = property.IsLenient,
                Parameters = new []
                {
                    new ParameterModel 
                    {
                        Converter = GetConverter(targetType),
                        Index = 0,
                        IsOptional = false,
                        Name = "value",
                        ParameterType = targetType,
                        IsParams = false
                    }
                },
                RefName = "Set" + refName,
                IsVoid = ignoreSet
            };

            return new PropertyModel
            {
                Name = name,
                Getter = getter,
                Setter = setter
            };
        }
Esempio n. 4
0
 public void Visit(BindingProperty property)
 {
     Include(property.ValueType);
 }
 public void Visit(BindingProperty property)
 {
     Include(property.ValueType);
 }
 void IVisitor.Visit(BindingProperty property)
 {
 }