Exemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UnitSystemDependencies"/> class.
 /// </summary>
 /// <param name="unitRegistry">The unit registry.</param>
 /// <param name="lexicalAnalyzer">The lexical analyzer.</param>
 /// <param name="expressionParser">The expression parser.</param>
 /// <param name="quantityParser">The quantity parser.</param>
 /// <param name="unitFactory">The unit factory.</param>
 /// <param name="quantityOperations">The quantity operations.</param>
 public UnitSystemDependencies(
     UnitRegistry unitRegistry,
     ILexicalAnalyzer lexicalAnalyzer,
     IExpressionParser expressionParser,
     IQuantityParser quantityParser,
     IUnitFactory unitFactory,
     IQuantityOperations quantityOperations)
 {
     this.UnitRegistry       = unitRegistry;
     this.LexicalAnalyzer    = lexicalAnalyzer;
     this.ExpressionParser   = expressionParser;
     this.QuantityParser     = quantityParser;
     this.UnitFactory        = unitFactory;
     this.QuantityOperations = quantityOperations;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="UnitSystemDependencies"/> class.
 /// </summary>
 /// <param name="unitRegistry">The unit registry.</param>
 /// <param name="lexicalAnalyzer">The lexical analyzer.</param>
 /// <param name="expressionParser">The expression parser.</param>
 /// <param name="quantityParser">The quantity parser.</param>
 /// <param name="unitFactory">The unit factory.</param>
 /// <param name="quantityOperations">The quantity operations.</param>
 public UnitSystemDependencies(
     UnitRegistry unitRegistry,
     ILexicalAnalyzer lexicalAnalyzer,
     IExpressionParser expressionParser,
     IQuantityParser quantityParser,
     IUnitFactory unitFactory,
     IQuantityOperations quantityOperations)
 {
     this.UnitRegistry = unitRegistry;
     this.LexicalAnalyzer = lexicalAnalyzer;
     this.ExpressionParser = expressionParser;
     this.QuantityParser = quantityParser;
     this.UnitFactory = unitFactory;
     this.QuantityOperations = quantityOperations;
 }
Exemplo n.º 3
0
        /// <summary>
        /// Initializes the unit system.
        /// </summary>
        /// <param name="unitSystemDependencyFactory">The unit system dependency factory.</param>
        /// <param name="registerUnitAction">The register unit action.</param>
        /// <returns>A <see cref="UnitSystemDependencies"/>.</returns>
        public UnitSystemDependencies InitializeUnitSystem(
            IUnitSystemDependencyFactory unitSystemDependencyFactory,
            Action <IUnitRegistrar> registerUnitAction)
        {
            this.LockedAction(
                () =>
            {
                if (!this.isInitialized)
                {
                    unitSystemDependencyFactory = unitSystemDependencyFactory
                                                  ?? new UnitSystemDependencyFactory(
                        new ExpressionToFlatRepresentationConverter());
                    this.unitRegistry = unitSystemDependencyFactory.CreateUnitRegistry();
                    registerUnitAction?.Invoke(this.unitRegistry);
                    this.expressionParser = unitSystemDependencyFactory.CreateParser(this.unitRegistry);
                    this.lexicalAnalyzer  =
                        unitSystemDependencyFactory.CreateLexicalAnalyzer(TokenMatching.CompositeUnit);
                    this.unitFactory    = unitSystemDependencyFactory.CreateUnitFactory(this.unitRegistry);
                    this.quantityParser = unitSystemDependencyFactory.CreateParser(
                        this.expressionParser,
                        this.unitFactory);
                    this.quantityOperations =
                        unitSystemDependencyFactory.CreateQuantityOperations(this.unitFactory);
                    this.Dependencies = new UnitSystemDependencies(
                        this.unitRegistry,
                        this.lexicalAnalyzer,
                        this.expressionParser,
                        this.quantityParser,
                        this.unitFactory,
                        this.quantityOperations);
                    this.isInitialized = true;
                }
            });

            return(this.Dependencies);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Initializes the unit system.
        /// </summary>
        /// <param name="unitSystemDependencyFactory">The unit system dependency factory.</param>
        /// <param name="registerUnitAction">The register unit action.</param>
        public UnitSystemDependencies InitializeUnitSystem(
            IUnitSystemDependencyFactory unitSystemDependencyFactory,
            Action<IUnitRegistrar> registerUnitAction)
        {
            this.LockedAction(
                () =>
                    {
                        if (!this.isInitialized)
                        {
                            unitSystemDependencyFactory = unitSystemDependencyFactory
                                                          ?? new UnitSystemDependencyFactory(
                                                                 new ExpressionToFlatRepresentationConverter());
                            this.unitRegistry = unitSystemDependencyFactory.CreateUnitRegistry();
                            registerUnitAction?.Invoke(this.unitRegistry);
                            this.expressionParser = unitSystemDependencyFactory.CreateParser(this.unitRegistry);
                            this.lexicalAnalyzer =
                                unitSystemDependencyFactory.CreateLexicalAnalyzer(TokenMatching.CompositeUnit);
                            this.unitFactory = unitSystemDependencyFactory.CreateUnitFactory(this.unitRegistry);
                            this.quantityParser = unitSystemDependencyFactory.CreateParser(
                                this.expressionParser,
                                this.unitFactory);
                            this.quantityOperations =
                                unitSystemDependencyFactory.CreateQuantityOperations(this.unitFactory);
                            this.Dependencies = new UnitSystemDependencies(
                                this.unitRegistry,
                                this.lexicalAnalyzer,
                                this.expressionParser,
                                this.quantityParser,
                                this.unitFactory,
                                this.quantityOperations);
                            this.isInitialized = true;
                        }
                    });

            return this.Dependencies;
        }