public static IRuleDeclaration RuleDeclarationMapper(ICategoryDeclaration parentDeclaration, Model.RuleDeclaration ruleDeclaration) { IRuleDeclaration rule = null; try { rule = ConfigurationComponentFactory().ConfigurationFactory <IRuleDeclaration>(typeof(IRuleDeclaration)); } catch (Exception e) { throw new DataAccessComponentException(null, -1, "Configuration proxy factory failure - unable to create an instance of " + typeof(IRuleDeclaration) + "?", e); } try { rule.Id = ruleDeclaration.Id; rule.Name = ruleDeclaration.Name; rule.Description = ruleDeclaration.Description; rule.Expression = ruleDeclaration.Expression; rule.Severity = RuleSeverityMapper.Int2RuleSeverity(ruleDeclaration.Severity); rule.ParentDeclaration = parentDeclaration; foreach (var language in ruleDeclaration.LanguageDeclaration) { rule.Languages.Add(language.Id, LanguageDeclarationMapper(language)); } } catch (Exception e) { throw new DataAccessComponentException(null, -1, "Mapping process failure?", e); } return(rule); }
public static ICategoryDeclaration CategoryDeclarationMapper(Model.CategoryDeclaration categoryDeclaration) { ICategoryDeclaration category = null; try { category = ConfigurationComponentFactory().ConfigurationFactory <ICategoryDeclaration>(typeof(ICategoryDeclaration)); } catch (Exception e) { throw new DataAccessComponentException(null, -1, "Configuration proxy factory failure - unable to create an instance of " + typeof(ICategoryDeclaration) + "?", e); } try { category.Id = categoryDeclaration.Id; category.Name = categoryDeclaration.Name; category.Description = categoryDeclaration.Description; foreach (var rule in categoryDeclaration.Rules) { category.Rules.Add(rule.Id, RuleDeclarationMapper(category, rule)); } } catch (Exception e) { throw new DataAccessComponentException(null, -1, "Mapping process failure?", e); } return(category); }
public static Model.CategoryDeclaration CategoryDeclarationMapper(ICategoryDeclaration declaration, CodeAnalyzerContainer context) { Model.CategoryDeclaration categoryDeclaration = context.CategoryDeclaration.SingleOrDefault(c => c.Id == declaration.Id); if (categoryDeclaration == null) return new Model.CategoryDeclaration { Name = declaration.Name, Description = declaration.Description, }; return categoryDeclaration; }
public Dictionary <int, IRuleDeclaration> RuleDeclarationsFromCategoryId(int categoryId) { lock (ManagerLock) { Dictionary <int, ICategoryDeclaration> categories = CategoryDeclarations(); if (!categories.ContainsKey(categoryId)) { throw new ConfigurationComponentException(string.Format("Unable to find category declaration from 'categoryId'='{0}'", categoryId)); } ICategoryDeclaration category = categories[categoryId]; return(category.Rules); } }
public static Model.CategoryDeclaration CategoryDeclarationMapper(ICategoryDeclaration declaration, CodeAnalyzerContainer context) { Model.CategoryDeclaration categoryDeclaration = context.CategoryDeclaration.SingleOrDefault(c => c.Id == declaration.Id); if (categoryDeclaration == null) { return new Model.CategoryDeclaration { Name = declaration.Name, Description = declaration.Description, } } ; return(categoryDeclaration); }
public bool IsCategoryDeclared(string referenceName, int referenceId) { if (!Categories.ContainsKey(referenceId)) { return(false); } ICategoryDeclaration declaration = Categories[referenceId]; if (string.Compare(referenceName, declaration.Name, StringComparison.OrdinalIgnoreCase) != 0) { return(false); } return(true); }
public IEnumerable <ICategoryDeclaration> LoadCategoryDeclarations() { using (CodeAnalyzerContainer context = new CodeAnalyzerContainer()) { var result = from categoryDeclarations in context.CategoryDeclaration select categoryDeclarations; List <ICategoryDeclaration> domainCategoryDeclarations = new List <ICategoryDeclaration>(); foreach (CategoryDeclaration categoryDeclaration in result) { ICategoryDeclaration c = ToDomainModelMapper.CategoryDeclarationMapper(categoryDeclaration); domainCategoryDeclarations.Add(c); } return(domainCategoryDeclarations); } }
public static XmlNode CreateCategoryDeclarationXmlNode(XmlDocument doc, ICategoryDeclaration declaration) { // <CategoryDeclaration Name="Static constructions" Id="{867FDD48-C061-4C1A-9ADF-FD56CFB27BF0}"> // <Description><CDATA ELEMENT></Description> // </CategoryDeclaration> XmlNode declarationNode = doc.CreateNode(XmlNodeType.Element, "CategoryDeclaration", null); XmlNode descriptionNode = doc.CreateNode(XmlNodeType.Element, "Description", null); XmlAttribute nameAttrib = doc.CreateAttribute("Name"); XmlAttribute idAttrib = doc.CreateAttribute("Id"); idAttrib.Value = declaration.Id.ToString(); nameAttrib.Value = declaration.Name; declarationNode.Attributes.Append(idAttrib); declarationNode.Attributes.Append(nameAttrib); XmlCDataSection cdataNameNode = doc.CreateCDataSection(declaration.Description); descriptionNode.AppendChild(cdataNameNode); declarationNode.AppendChild(descriptionNode); return declarationNode; }
public static XmlNode CreateCategoryDeclarationXmlNode(XmlDocument doc, ICategoryDeclaration declaration) { // <CategoryDeclaration Name="Static constructions" Id="{867FDD48-C061-4C1A-9ADF-FD56CFB27BF0}"> // <Description><CDATA ELEMENT></Description> // </CategoryDeclaration> XmlNode declarationNode = doc.CreateNode(XmlNodeType.Element, "CategoryDeclaration", null); XmlNode descriptionNode = doc.CreateNode(XmlNodeType.Element, "Description", null); XmlAttribute nameAttrib = doc.CreateAttribute("Name"); XmlAttribute idAttrib = doc.CreateAttribute("Id"); idAttrib.Value = declaration.Id.ToString(); nameAttrib.Value = declaration.Name; declarationNode.Attributes.Append(idAttrib); declarationNode.Attributes.Append(nameAttrib); XmlCDataSection cdataNameNode = doc.CreateCDataSection(declaration.Description); descriptionNode.AppendChild(cdataNameNode); declarationNode.AppendChild(descriptionNode); return(declarationNode); }
public static XmlNode CreateMatchXmlNode(XmlDocument doc, int id, IMatch match) { //throw new NotImplementedException(); // <Match Id="" Name="" Open=""> // <File /> // <LineNumber /> // <RegExpName><CDATA ELEMENT></RegExpName> // <RegExpDescription><CDATA ELEMENT></RegExpDescription> // <RegExpExpression><CDATA ELEMENT></RegExpExpression> // <RegExpSummary><CDATA ELEMENT></RegExpSummary> // <Severity Value="">Fatal|Critical|Warning|Info</Severity> // </Match> XmlNode matchNode = doc.CreateNode(XmlNodeType.Element, "Match", null); XmlNode projectNode = doc.CreateNode(XmlNodeType.Element, "Project", null); XmlNode categoryNode = doc.CreateNode(XmlNodeType.Element, "Category", null); XmlNode rootDirectoryNode = doc.CreateNode(XmlNodeType.Element, "RootDirectory", null); XmlNode filenameNode = doc.CreateNode(XmlNodeType.Element, "FileName", null); XmlNode lineNumberNode = doc.CreateNode(XmlNodeType.Element, "LineNumber", null); XmlNode ruleNameNode = doc.CreateNode(XmlNodeType.Element, "RuleName", null); XmlNode ruleDescriptionNode = doc.CreateNode(XmlNodeType.Element, "RuleDescription", null); XmlNode ruleExpressionNode = doc.CreateNode(XmlNodeType.Element, "RuleExpression", null); XmlNode codeExtractNode = doc.CreateNode(XmlNodeType.Element, "CodeExtract", null); XmlNode severityNode = doc.CreateNode(XmlNodeType.Element, "Severity", null); IConfigurationProxy cfgProxy = ProxyHome.Instance.RetrieveConfigurationProxy(OutputKeyKeeper.Instance.AccessKey); // Match node... XmlAttribute idAttrib = doc.CreateAttribute("Id"); XmlAttribute nameAttrib = doc.CreateAttribute("Name"); XmlAttribute openAttrib = doc.CreateAttribute("Open"); idAttrib.Value = id + ""; nameAttrib.Value = match.Filename; openAttrib.Value = "false"; matchNode.Attributes.Append(idAttrib); matchNode.Attributes.Append(nameAttrib); matchNode.Attributes.Append(openAttrib); IProjectDefinition projectDefinition = cfgProxy.Project(match.ProjectDefinitionRef.Id); ICategoryDeclaration categoryDeclaration = cfgProxy.CategoryDeclaration(match.RuleDeclarationRef.ParentDeclaration.Id); IRuleDeclaration ruleDeclaration = cfgProxy.RuleDeclarationFromRuleId(match.RuleDeclarationRef.Id); // File node and Line number node... projectNode.InnerText = projectDefinition.Name; categoryNode.InnerText = categoryDeclaration.Name; rootDirectoryNode.InnerText = match.RootDirectoryPath; filenameNode.InnerText = match.Filename; lineNumberNode.InnerText = match.LineNumber + ""; // RegExpName node... XmlCDataSection cdataRegExpNameNode = doc.CreateCDataSection(ruleDeclaration.Name); ruleNameNode.AppendChild(cdataRegExpNameNode); // RegExpDescription node... XmlCDataSection cdataRegExpDescriptionNode = doc.CreateCDataSection(ruleDeclaration.Description); ruleDescriptionNode.AppendChild(cdataRegExpDescriptionNode); // RegExpExpression node... XmlCDataSection cdataRegExpExpression = doc.CreateCDataSection(ruleDeclaration.Expression); ruleExpressionNode.AppendChild(cdataRegExpExpression); // RegExpSummary node... XmlCDataSection cdataRegExpSummary = doc.CreateCDataSection(match.CodeExtract); codeExtractNode.AppendChild(cdataRegExpSummary); // Severity node... XmlAttribute severityValueAttrib = doc.CreateAttribute("Value"); severityValueAttrib.Value = (int)match.Severity + ""; severityNode.InnerText = match.Severity.ToString(); severityNode.Attributes.Append(severityValueAttrib); // Add all nodes to the 'node' given in the arguments. matchNode.AppendChild(projectNode); matchNode.AppendChild(categoryNode); matchNode.AppendChild(ruleNameNode); matchNode.AppendChild(ruleDescriptionNode); matchNode.AppendChild(ruleExpressionNode); matchNode.AppendChild(rootDirectoryNode); matchNode.AppendChild(filenameNode); matchNode.AppendChild(lineNumberNode); matchNode.AppendChild(codeExtractNode); matchNode.AppendChild(severityNode); return(matchNode); }
public static IRuleDeclaration RuleDeclarationMapper(ICategoryDeclaration parentDeclaration, Model.RuleDeclaration ruleDeclaration) { IRuleDeclaration rule = null; try { rule = ConfigurationComponentFactory().ConfigurationFactory<IRuleDeclaration>(typeof(IRuleDeclaration)); } catch (Exception e) { throw new DataAccessComponentException(null, -1, "Configuration proxy factory failure - unable to create an instance of " + typeof(IRuleDeclaration) + "?", e); } try { rule.Id = ruleDeclaration.Id; rule.Name = ruleDeclaration.Name; rule.Description = ruleDeclaration.Description; rule.Expression = ruleDeclaration.Expression; rule.Severity = RuleSeverityMapper.Int2RuleSeverity(ruleDeclaration.Severity); rule.ParentDeclaration = parentDeclaration; foreach (var language in ruleDeclaration.LanguageDeclaration) { rule.Languages.Add(language.Id, LanguageDeclarationMapper(language)); } } catch (Exception e) { throw new DataAccessComponentException(null, -1, "Mapping process failure?", e); } return rule; }