コード例 #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);
 }