Exemplo n.º 1
0
 public BinaryExpressionOperator(string symbol, ExpressionResultType result, bool canOverflow, SignedOperatonMode signage, BinaryOperatorDelegate code)
 {
     this.Symbol         = symbol;
     this.ResultType     = result;
     this.CanOverflow    = canOverflow;
     this.SignedOperands = signage;
     this.Operation      = code;
 }
Exemplo n.º 2
0
 /// <summary>
 ///   Finds elements via an index.
 /// </summary>
 /// <returns> The elements. </returns>
 /// <param name='finder'> Finder delegate. </param>
 /// <param name='literal'> Literal. </param>
 /// <param name='index'> Index. </param>
 private static ReadOnlyCollection <AGraphElement> FindElementsIndex(BinaryOperatorDelegate finder,
                                                                     IComparable literal, IIndex index)
 {
     return(new ReadOnlyCollection <AGraphElement>(index.GetKeyValues()
                                                   .AsParallel()
                                                   .Select(aIndexElement => new KeyValuePair <IComparable, ReadOnlyCollection <AGraphElement> >((IComparable)aIndexElement.Key, aIndexElement.Value))
                                                   .Where(aTypedIndexElement => finder(aTypedIndexElement.Key, literal))
                                                   .Select(_ => _.Value)
                                                   .SelectMany(__ => __)
                                                   .Distinct()
                                                   .ToList()));
 }
Exemplo n.º 3
0
        /// <summary>
        ///   Finds the elements.
        /// </summary>
        /// <returns> The elements. </returns>
        /// <param name='finder'> Finder. </param>
        /// <param name='literal'> Literal. </param>
        /// <param name='propertyId'> Property identifier. </param>
        private List <AGraphElement> FindElements(BinaryOperatorDelegate finder, IComparable literal, UInt16 propertyId)
        {
            if (ReadResource())
            {
                var result = FindElements(
                    aGraphElement =>
                {
                    Object property;
                    return(aGraphElement.TryGetProperty(out property, propertyId) &&
                           finder(property as IComparable, literal));
                });
                FinishReadResource();

                return(result);
            }

            throw new CollisionException(this);
        }
Exemplo n.º 4
0
        /// <summary>
        ///   Finds the elements.
        /// </summary>
        /// <returns> The elements. </returns>
        /// <param name='finder'> Finder. </param>
        /// <param name='literal'> Literal. </param>
        /// <param name='propertyId'> Property identifier. </param>
        private List<AGraphElement> FindElements(BinaryOperatorDelegate finder, IComparable literal, UInt16 propertyId)
        {
            if (ReadResource())
            {
                var result = _graphElements.FindElements(
                    aGraphElement =>
                        {
                            Object property;
                            return aGraphElement.TryGetProperty(out property, propertyId) &&
                                   finder(property as IComparable, literal);
                        });
                FinishReadResource();

                return result;
            }

            throw new CollisionException();
        }
Exemplo n.º 5
0
 /// <summary>
 ///   Finds elements via an index.
 /// </summary>
 /// <returns> The elements. </returns>
 /// <param name='finder'> Finder delegate. </param>
 /// <param name='literal'> Literal. </param>
 /// <param name='index'> Index. </param>
 private static ReadOnlyCollection<AGraphElement> FindElementsIndex(BinaryOperatorDelegate finder,
                                                                    IComparable literal, IIndex index)
 {
     return new ReadOnlyCollection<AGraphElement>(index.GetKeyValues()
                                                      .AsParallel()
                                                      .Select(aIndexElement => new KeyValuePair<IComparable, ReadOnlyCollection<AGraphElement>>((IComparable)aIndexElement.Key, aIndexElement.Value))
                                                      .Where(aTypedIndexElement => finder(aTypedIndexElement.Key, literal))
                                                      .Select(_ => _.Value)
                                                      .SelectMany(__ => __)
                                                      .Distinct()
                                                      .ToList());
 }