示例#1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ImplementationGenerator"/> class.
 /// </summary>
 /// <param name="generator">The generator to use to generate the output.</param>
 /// <param name="locator">Code generation locator.</param>
 /// <param name="itfPattern">The interface pattern to use for the generator.</param>
 /// <param name="implPattern">The implementation pattern to use for the generator.</param>
 public ImplementationGenerator(IGenerator generator, ILocator locator, IInterfaceDeclaration itfPattern, IGenericDeclaration <SyntaxNode> implPattern)
 {
     this.generator   = generator;
     this.itfPattern  = itfPattern;
     this.implPattern = implPattern;
     this.locator     = locator;
 }
 public AttributesWalker(
     IDeclarationResolver resolver,
     IGenericDeclaration <SyntaxNode> genericDeclaration,
     List <IAttributeUse> attributesList)
 {
     this.resolver           = resolver;
     this.attributesList     = attributesList;
     this.genericDeclaration = genericDeclaration;
 }
 public MembersWalker(
     IDeclarationResolver resolver,
     IGenericDeclaration <SyntaxNode> genericDeclaration,
     List <IMemberDeclaration <SyntaxNode> > memberList)
 {
     this.resolver           = resolver;
     this.memberList         = memberList;
     this.genericDeclaration = genericDeclaration;
 }
示例#4
0
 public AutomatedGenericStrategy(
     IGenericDeclaration <SyntaxNode> pattern,
     IGenericDeclaration <SyntaxNode> declaration,
     IDeclarationResolver resolver)
 {
     this.declaration           = declaration;
     this.pattern               = pattern;
     this.resolver              = resolver;
     this.targetDeclarationName = GeneratorHelper.ComputeClassName(declaration.Name);
     this.targetPatternName     = GeneratorHelper.ComputeClassName(pattern.Name);
 }
示例#5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ImplementationGeneratorWalker"/> class.
 /// </summary>
 /// <param name="writer">The writer where to write generated code.</param>
 /// <param name="itfPattern">Interface pattern.</param>
 /// <param name="implPattern">Implementation pattern.</param>
 /// <param name="itfDeclaration">Interface declaration to implement.</param>
 /// <param name="implName">Implementation name.</param>
 /// <param name="implNameSpace">Implementation name space.</param>
 /// <param name="writerSelector">Writer selector.</param>
 /// <param name="textSubstitutionHandler">Optional text substitution handler.</param>
 public ImplementationGeneratorWalker(
     TextWriter writer,
     IInterfaceDeclaration itfPattern,
     IGenericDeclaration <SyntaxNode> implPattern,
     IInterfaceDeclaration itfDeclaration,
     string implName,
     string implNameSpace,
     IWriterSelector writerSelector,
     Func <string, string> textSubstitutionHandler = null)
 {
     this.writer                  = writer;
     this.itfPattern              = itfPattern;
     this.implPattern             = implPattern;
     this.declaration             = itfDeclaration;
     this.implName                = implName;
     this.implNameSpace           = implNameSpace;
     this.writerSelector          = writerSelector;
     this.textSubstitutionHandler = textSubstitutionHandler ?? SameText;
 }
示例#6
0
 /// <inheritdoc/>
 public IEnumerable <IPropertyDeclaration> GetProperties(IGenericDeclaration <SyntaxNode> declaration)
 {
     return(declaration?.Properties);
 }
示例#7
0
 /// <inheritdoc/>
 public IEnumerable <IPropertyDeclaration> GetProperties(IGenericDeclaration <SyntaxNode> declaration)
 {
     throw new NotImplementedException();
 }
 /// <inheritdoc/>
 public void AddExtendedBy(IGenericDeclaration <SyntaxNode> declaration)
 {
     this.extendedBy.Add(declaration);
 }
 /// <inheritdoc/>
 public IEnumerable <IPropertyDeclaration> GetProperties(IGenericDeclaration <SyntaxNode> declaration)
 {
     return(declaration?.Properties.Where(p => p.HasGetter && !p.HasSetter));
 }
 public DeclarationUseWalker(IDeclarationResolver resolver, IGenericDeclaration <SyntaxNode> genericDeclaration)
 {
     this.resolver           = resolver;
     this.genericDeclaration = genericDeclaration;
 }