Пример #1
0
        public override string Build(T value, CodeGeneration generation)
        {
            var builder = GetBuilder(value, generation);

            if (builder == null)
            {
                return(string.Empty);
            }
            else
            {
                return(builder.Build(value, generation));
            }
        }
Пример #2
0
        public CodeBuilder <T> GetBuilder(T value, CodeGeneration generation)
        {
            var             priority = IgnorePriority;
            CodeBuilder <T> result   = null;

            foreach (var builder in Builders)
            {
                var builderPriority = builder.GetPriority(value, generation);
                if (builderPriority > priority)
                {
                    priority = builderPriority;
                    result   = builder;
                }
            }
            return(result);
        }
Пример #3
0
 public abstract string Build(T value, CodeGeneration generation);
Пример #4
0
 public abstract int GetPriority(T value, CodeGeneration generation);
Пример #5
0
 public override int GetPriority(T value, CodeGeneration generation)
 {
     return(GetBuilder(value, generation)?.GetPriority(value, generation) ?? IgnorePriority);
 }