using System.Collections.Generic;
using Codelyzer.Analysis;
using Codelyzer.Analysis.Build;
using CTA.Rules.Models;
using CTA.Rules.Update;
namespace CTA.Rules.PortCore
{
public class VisualBasicProjectRewriter : ProjectRewriter
{
public readonly ProjectType _projectType;
///
/// Initializes a new instance of ProjectRewriter using an existing analysis
///
/// The analysis results of the project
/// ProjectConfiguration for this project
public VisualBasicProjectRewriter(AnalyzerResult analyzerResult, ProjectConfiguration projectConfiguration)
: base(analyzerResult, projectConfiguration)
{
_projectType = projectConfiguration.ProjectType;
}
///
/// Initializes a new instance of ProjectRewriter using an existing analysis
///
/// The analysis results of the project
/// ProjectConfiguration for this project
public VisualBasicProjectRewriter(IDEProjectResult projectResult, ProjectConfiguration projectConfiguration)
: base(projectResult, projectConfiguration)
{
_projectType = projectConfiguration.ProjectType;
}
///
/// Initializes the ProjectRewriter then runs it
///
public override ProjectResult Run()
{
if (isExludedFromPorting(_projectType))
return _projectResult;
var projectResult = Initialize();
return Run(projectResult.ProjectActions);
}
///
/// Runs the project rewriter using a previously initialized analysis
///
///
public override ProjectResult Run(ProjectActions projectActions)
{
if (isExludedFromPorting(_projectType))
return _projectResult;
base.Run(projectActions);
return _projectResult;
}
///
/// Runs the project rewriter using an incremental analysis
///
///
///
public override List RunIncremental(List updatedFiles, RootNodes projectRules)
{
List ideFileActions = new List();
if(!isExludedFromPorting(_projectType))
ideFileActions = base.RunIncremental(updatedFiles, projectRules);
return ideFileActions;
}
private bool isExludedFromPorting(ProjectType projectType)
{
return projectType == ProjectType.VBWebForms || projectType == ProjectType.VBNetMvc;
}
}
}