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;
 }
Exemplo n.º 6
0
 public ObjectDepthFinder(RuleSetValidator ruleSetValidator, uint cutoff = 100)
 {
     _ruleSetValidator = ruleSetValidator;
     _cutoff = cutoff;
 }
Exemplo n.º 7
0
        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;
 }