Esempio n. 1
0
 public SelectExprInsertNativeNoEval(
     EventType eventType,
     EventBeanManufacturerForge eventManufacturer)
 {
     ResultEventType        = eventType;
     this.eventManufacturer = eventManufacturer;
 }
 public SelectExprInsertNativeNoWiden(
     EventType eventType,
     EventBeanManufacturerForge eventManufacturer,
     ExprForge[] exprForges)
     : base(eventType, eventManufacturer, exprForges)
 {
 }
 public ContainedEventEvalArrayToEventForge(
     ExprForge evaluator,
     EventBeanManufacturerForge manufacturer)
 {
     this.evaluator = evaluator;
     this.manufacturer = manufacturer;
 }
 public SelectExprInsertNativeWidening(
     EventType eventType,
     EventBeanManufacturerForge eventManufacturer,
     ExprForge[] exprForges,
     TypeWidenerSPI[] wideners)
     : base(eventType, eventManufacturer, exprForges)
 {
     this.wideners = wideners;
 }
 internal SelectExprInsertNativeBase(
     EventType eventType,
     EventBeanManufacturerForge eventManufacturer,
     ExprForge[] exprForges)
 {
     ResultEventType        = eventType;
     this.eventManufacturer = eventManufacturer;
     this.exprForges        = exprForges;
 }
 internal OAInsertProcessorAllocate(
     int underlyingStreamNumber,
     Item[] items,
     EventBeanManufacturerForge manufacturer,
     EventType resultType)
 {
     this.underlyingStreamNumber = underlyingStreamNumber;
     this.items = items;
     this.manufacturer = manufacturer;
     ResultEventType = resultType;
 }
Esempio n. 7
0
        public SAIFFInitializeBuilder Manufacturer(
            string name,
            EventBeanManufacturerForge forge)
        {
            if (forge == null) {
                return SetValue(name, ConstantNull());
            }

            var manufacturer = classScope.AddDefaultFieldUnshared<EventBeanManufacturer>(
                true, forge.Make(method.Block, method, classScope));
            return SetValue(name, manufacturer);
        }
Esempio n. 8
0
 public SelectExprProcessorTypableSingleForge(
     ExprTypableReturnForge typable,
     bool hasWideners,
     TypeWidenerSPI[] wideners,
     EventBeanManufacturerForge factory,
     EventType targetType,
     bool singleRowOnly)
 {
     this.typable = typable;
     this.hasWideners = hasWideners;
     this.wideners = wideners;
     this.factory = factory;
     this.targetType = targetType;
     this.singleRowOnly = singleRowOnly;
 }
Esempio n. 9
0
        private DataFlowOpForgeInitializeResult InitializeTypeDeclared(
            DataFlowOpOutputPort port,
            DataFlowOpForgeInitializeContext context)
        {
            produceEventBean = port.OptionalDeclaredType != null && !port.OptionalDeclaredType.IsUnderlying;

            // compile properties to populate
            outputEventType = port.OptionalDeclaredType.EventType;
            var props = allProperties.Keys;
            props.RemoveAll(PARAMETER_PROPERTIES);
            var writables = SetupProperties(props.ToArray(), outputEventType);
            try {
                eventBeanManufacturer = EventTypeUtility.GetManufacturer(
                    outputEventType,
                    writables,
                    context.Services.ImportServiceCompileTime,
                    false,
                    context.Services.EventTypeAvroHandler);
            }
            catch (EventBeanManufactureException e) {
                throw new ExprValidationException(
                    "Cannot manufacture event for the provided type '" + outputEventType.Name + "': " + e.Message,
                    e);
            }

            var index = 0;
            evaluatorForges = new ExprForge[writables.Length];
            var typeWidenerCustomizer =
                context.Services.EventTypeAvroHandler.GetTypeWidenerCustomizer(outputEventType);
            foreach (var writable in writables) {
                object providedProperty = allProperties.Get(writable.PropertyName);
                var exprNode = (ExprNode) providedProperty;
                var validated = EPLValidationUtil.ValidateSimpleGetSubtree(
                    ExprNodeOrigin.DATAFLOWBEACON,
                    exprNode,
                    null,
                    false,
                    context.Base.StatementRawInfo,
                    context.Services);
                TypeWidenerSPI widener;
                try {
                    widener = TypeWidenerFactory.GetCheckPropertyAssignType(
                        ExprNodeUtilityPrint.ToExpressionStringMinPrecedenceSafe(validated),
                        validated.Forge.EvaluationType,
                        writable.PropertyType,
                        writable.PropertyName,
                        false,
                        typeWidenerCustomizer,
                        context.Base.StatementName);
                }
                catch (TypeWidenerException e) {
                    throw new ExprValidationException("Failed for property '" + writable.PropertyName + "'", e);
                }

                if (widener != null) {
                    evaluatorForges[index] = new ExprEvalWithTypeWidener(widener, validated, writable.PropertyType);
                }
                else {
                    evaluatorForges[index] = validated.Forge;
                }

                index++;
            }

            return null;
        }