예제 #1
0
파일: BuildersList.cs 프로젝트: nikes/Link
        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
파일: BuildersList.cs 프로젝트: nikes/Link
        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
파일: CodeBuilder.cs 프로젝트: nikes/Link
 public abstract string Build(T value, CodeGeneration generation);
예제 #4
0
파일: CodeBuilder.cs 프로젝트: nikes/Link
 public abstract int GetPriority(T value, CodeGeneration generation);
예제 #5
0
파일: BuildersList.cs 프로젝트: nikes/Link
 public override int GetPriority(T value, CodeGeneration generation)
 {
     return(GetBuilder(value, generation)?.GetPriority(value, generation) ?? IgnorePriority);
 }