public static IGenerator CreateGenerator(ExportType type, RuleSetValidator ruleSetValidator) { IGenerator generator = null; switch (type) { case ExportType.Xml: generator = new XmlGenerator(ruleSetValidator); break; case ExportType.Json: generator = new JsonGenerator(ruleSetValidator); break; case ExportType.CSharpObject: generator = new CSharpGenerator(ruleSetValidator); break; } return generator; }
public ExportGenerator(IEnumerable<ExpressionWithSource> expressionsWithSources, TypeRetriever retriever, ExportParamaters exportParamaters) { _type = exportParamaters.ExportType; _expressionsWithSources = expressionsWithSources; _maxDepth = exportParamaters.MaxDepth; List<IRuleSet> ruleSets = new List<IRuleSet>(); if (exportParamaters.ExcludePropertiesNotInClass) { ruleSets.Add(new PropertyInClassRuleSet(retriever)); } if (exportParamaters.ExludePrivateProperties) { ruleSets.Add(new AccessiblePropertiesRuleSet(retriever)); } _ruleSetValidator = new RuleSetValidator(ruleSets); }
//TODO: can remove PackageSettings and use GlobalPackageSettings public FormSelectObjects(DTE2 dte2, PackageSettings settings) { _dte2 = dte2; _settings = settings; InitializeComponent(); LoadLocals(); TypeRetriever retriever = new TypeRetriever(dte2); List<IRuleSet> ruleSets = new List<IRuleSet>(); if (settings.IgnoreDynamicallyAddedProperties) { ruleSets.Add(new PropertyInClassRuleSet(retriever)); } bool excludePrivates = radCheckBoxExcludePrivate.Checked; if (excludePrivates) { ruleSets.Add(new AccessiblePropertiesRuleSet(retriever)); } _ruleSetValidator = new RuleSetValidator(ruleSets); }
public CSharpGenerator(RuleSetValidator ruleSetValidator) { _ruleSetValidator = ruleSetValidator; }
public JsonGenerator(RuleSetValidator ruleSetValidator) { _ruleSetValidator = ruleSetValidator; }
public ObjectDepthFinder(RuleSetValidator ruleSetValidator, uint cutoff = 100) { _ruleSetValidator = ruleSetValidator; _cutoff = cutoff; }
public static List<Expression> SanitizeExpressions(Expression expression, RuleSetValidator ruleSetValidator, string parentExpressionType) { var expressionMembers = expression.DataMembers.Cast<Expression>().ToList(); var cleanedExpressionMembers = new List<Expression>(); for (int i = 0; i < expressionMembers.Count; i++) { Expression currentExpression = expressionMembers[i]; //Ignore collections if (IsTypeOfCollection(currentExpression.Type)) { cleanedExpressionMembers.Add(currentExpression); } //Add base type members to the list at the current level else if (IsBase(currentExpression)) { expressionMembers.AddRange(currentExpression.DataMembers.Cast<Expression>()); } else if (IsSerializable(currentExpression.Name)) { //check accessibility bool isValid = ruleSetValidator.ValidateAllSubRules(parentExpressionType, currentExpression.Name); if (isValid) { cleanedExpressionMembers.Add(currentExpression); } } } return cleanedExpressionMembers; }
public GeneratorFactory(ExportType type, RuleSetValidator ruleSetValidator) { _type = type; _ruleSetValidator = ruleSetValidator; }
public XmlGenerator(RuleSetValidator ruleSetValidator) { _ruleSetValidator = ruleSetValidator; }