public EventPropertyGetterSPI GetGetterIndexedEntryEventBeanArrayElement(
     string propertyNameAtomic,
     int index,
     EventPropertyGetterSPI nestedGetter)
 {
     throw MakeIllegalState();
 }
Exemplo n.º 2
0
 public EventPropertyGetterSPI GetGetterIndexedEntryEventBeanArrayElement(
     string propertyNameAtomic,
     int index,
     EventPropertyGetterSPI nestedGetter)
 {
     return new MapEventBeanArrayIndexedElementPropertyGetter(propertyNameAtomic, index, nestedGetter);
 }
Exemplo n.º 3
0
        public virtual EventPropertyGetter GetGetter(string propertyName)
        {
            if (!_eventAdapterService.EngineImportService.IsCodegenEventPropertyGetters)
            {
                return(GetGetterSPI(propertyName));
            }
            if (_propertyGetterCodegeneratedCache == null)
            {
                _propertyGetterCodegeneratedCache = new Dictionary <string, EventPropertyGetter>();
            }

            EventPropertyGetter getter = _propertyGetterCodegeneratedCache.Get(propertyName);

            if (getter != null)
            {
                return(getter);
            }

            EventPropertyGetterSPI getterSPI = GetGetterSPI(propertyName);

            if (getterSPI == null)
            {
                return(null);
            }

            EventPropertyGetter getterCode = _eventAdapterService.EngineImportService.CodegenGetter(getterSPI, propertyName);

            _propertyGetterCodegeneratedCache.Put(propertyName, getterCode);
            return(getterCode);
        }
 /// <summary>
 ///     Ctor.
 /// </summary>
 /// <param name="propertyIndex">the property to look at</param>
 /// <param name="eventBeanEntryGetter">the getter for the map entry</param>
 public ObjectArrayEventBeanEntryPropertyGetter(
     int propertyIndex,
     EventPropertyGetterSPI eventBeanEntryGetter)
 {
     this.propertyIndex = propertyIndex;
     this.eventBeanEntryGetter = eventBeanEntryGetter;
 }
 /// <summary>
 ///     Ctor.
 /// </summary>
 /// <param name="revisionGetter">getter for revision value</param>
 /// <param name="nestedGetter">getter to apply to revision value</param>
 /// <param name="eventAdapterService">for handling object types</param>
 public RevisionNestedPropertyGetter(EventPropertyGetterSPI revisionGetter, EventPropertyGetterSPI nestedGetter,
     EventAdapterService eventAdapterService)
 {
     _revisionGetter = revisionGetter;
     _eventAdapterService = eventAdapterService;
     _nestedGetter = nestedGetter;
 }
Exemplo n.º 6
0
        public override ExprNode Validate(ExprValidationContext validationContext)
        {
            if (validationContext.ContextDescriptor == null) {
                throw new ExprValidationException(
                    "Context property '" + PropertyName + "' cannot be used in the expression as provided");
            }

            var eventType = (EventTypeSPI) validationContext.ContextDescriptor.ContextPropertyRegistry.ContextEventType;
            if (eventType == null) {
                throw new ExprValidationException(
                    "Context property '" + PropertyName + "' cannot be used in the expression as provided");
            }

            getter = eventType.GetGetterSPI(PropertyName);
            if (getter == null) {
                throw new ExprValidationException(
                    "Context property '" +
                    PropertyName +
                    "' is not a known property, known properties are " +
                    eventType.PropertyNames.RenderAny());
            }

            Type = eventType.GetPropertyType(PropertyName).GetBoxedType();
            return null;
        }
Exemplo n.º 7
0
 public FilterForEvalContextPropDoubleForge(
     EventPropertyGetterSPI getter,
     string propertyName)
 {
     _getter = getter;
     _propertyName = propertyName;
 }
Exemplo n.º 8
0
 public ExprDotForgeProperty(
     EventPropertyGetterSPI getter,
     EPType returnType)
 {
     this.getter = getter;
     this.returnType = returnType;
 }
 public ExprIdentNodeFragmentTypeEnumerationForge(string propertyName, int streamId, EventType fragmentEventType, EventPropertyGetterSPI getterSpi)
 {
     _propertyName      = propertyName;
     _streamId          = streamId;
     _fragmentEventType = fragmentEventType;
     _getterSpi         = getterSpi;
 }
 /// <summary>
 ///     Ctor.
 /// </summary>
 /// <param name="propertyMap">the property to look at</param>
 /// <param name="eventBeanEntryGetter">the getter for the map entry</param>
 public MapEventBeanEntryPropertyGetter(
     string propertyMap,
     EventPropertyGetterSPI eventBeanEntryGetter)
 {
     this.propertyMap = propertyMap;
     this.eventBeanEntryGetter = eventBeanEntryGetter;
 }
 /// <summary>
 ///     Ctor.
 /// </summary>
 /// <param name="propertyName">property name</param>
 /// <param name="index">array index</param>
 /// <param name="nestedGetter">nested getter</param>
 public MapEventBeanArrayIndexedElementPropertyGetter(string propertyName, int index,
     EventPropertyGetterSPI nestedGetter)
 {
     this._propertyName = propertyName;
     this._index = index;
     this._nestedGetter = nestedGetter;
 }
Exemplo n.º 12
0
 public SelectEvalStreamWUnderlying(
     SelectExprForgeContext selectExprForgeContext,
     EventType resultEventType,
     IList<SelectClauseStreamCompiledSpec> namedStreams,
     bool usingWildcard,
     IList<SelectExprStreamDesc> unnamedStreams,
     bool singleStreamWrapper,
     bool underlyingIsFragmentEvent,
     int underlyingStreamNumber,
     EventPropertyGetterSPI underlyingPropertyEventGetter,
     ExprForge underlyingExprForge,
     TableMetaData tableMetadata,
     EventType[] eventTypes)
     : base(selectExprForgeContext, resultEventType, namedStreams, usingWildcard)
 {
     wrapperEventType = (WrapperEventType) resultEventType;
     this.unnamedStreams = unnamedStreams;
     this.singleStreamWrapper = singleStreamWrapper;
     this.underlyingIsFragmentEvent = underlyingIsFragmentEvent;
     this.underlyingStreamNumber = underlyingStreamNumber;
     this.underlyingPropertyEventGetter = underlyingPropertyEventGetter;
     this.underlyingExprForge = underlyingExprForge;
     this.tableMetadata = tableMetadata;
     this.eventTypes = eventTypes;
 }
Exemplo n.º 13
0
 public ExprDotForgePropertyFragment(
     EventPropertyGetterSPI getter,
     EPType returnType)
 {
     _getter     = getter;
     _returnType = returnType;
 }
 public EventPropertyGetterSPI GetGetterNestedEventBean(
     string propertyName,
     EventPropertyGetterSPI nestedGetter)
 {
     var index = GetAssertIndex(propertyName);
     return new ObjectArrayEventBeanEntryPropertyGetter(index, nestedGetter);
 }
Exemplo n.º 15
0
 public PropertyDotNonLambdaFragmentForge(
     int streamId,
     EventPropertyGetterSPI getter)
 {
     this.streamId = streamId;
     this.getter = getter;
 }
 public EventPropertyGetterSPI GetGetterIndexedEntryEventBeanArrayElement(
     string propertyNameAtomic,
     int index,
     EventPropertyGetterSPI nestedGetter)
 {
     var propertyIndex = GetAssertIndex(propertyNameAtomic);
     return new ObjectArrayEventBeanArrayIndexedElementPropertyGetter(propertyIndex, index, nestedGetter);
 }
Exemplo n.º 17
0
 public WrapperMapPropertyGetter(WrapperEventType wrapperEventType, EventAdapterService eventAdapterService,
     MapEventType underlyingMapType, EventPropertyGetterSPI mapGetter)
 {
     _wrapperEventType = wrapperEventType;
     _eventAdapterService = eventAdapterService;
     _underlyingMapType = underlyingMapType;
     _mapGetter = mapGetter;
 }
Exemplo n.º 18
0
 public ExprDotForgePropertyArray(EventPropertyGetterSPI getter, EPType returnType, ExprNode indexExpression, Type arrayType, string propertyName)
 {
     _getter          = getter;
     _returnType      = returnType;
     _indexExpression = indexExpression;
     _arrayType       = arrayType;
     _propertyName    = propertyName;
 }
Exemplo n.º 19
0
        public static string From(
            ICodegenContext context,
            Type expectedUnderlyingType,
            EventPropertyGetterSPI innerGetter,
            AccessType accessType,
            Type generator)
        {
            var block = context.AddMethod(accessType == AccessType.EXISTS ? typeof(bool) : typeof(object),
                                          typeof(object), "value", generator)
                        .IfNotInstanceOf("value", expectedUnderlyingType)
                        .IfInstanceOf("value", typeof(EventBean))
                        .DeclareVarWCast(typeof(EventBean), "bean", "value");

            switch (accessType)
            {
            case AccessType.GET:
                block = block.BlockReturn(innerGetter.CodegenEventBeanGet(Ref("bean"), context));
                break;

            case AccessType.EXISTS:
                block = block.BlockReturn(innerGetter.CodegenEventBeanExists(Ref("bean"), context));
                break;

            case AccessType.FRAGMENT:
                block = block.BlockReturn(innerGetter.CodegenEventBeanFragment(Ref("bean"), context));
                break;

            default:
                throw new UnsupportedOperationException("Invalid access type " + accessType);
            }

            block = block.BlockReturn(Constant(accessType == AccessType.EXISTS ? (object)false : null));

            ICodegenExpression expression;

            switch (accessType)
            {
            case AccessType.GET:
                expression = innerGetter.CodegenUnderlyingGet(Cast(
                                                                  expectedUnderlyingType, Ref("value")), context);
                break;

            case AccessType.EXISTS:
                expression = innerGetter.CodegenUnderlyingExists(Cast(
                                                                     expectedUnderlyingType, Ref("value")), context);
                break;

            case AccessType.FRAGMENT:
                expression = innerGetter.CodegenUnderlyingFragment(
                    Cast(expectedUnderlyingType, Ref("value")), context);
                break;

            default:
                throw new UnsupportedOperationException("Invalid access type " + accessType);
            }

            return(block.MethodReturn(expression));
        }
Exemplo n.º 20
0
 public ExprEvaluatorStreamDTPropFragment(
     int streamId,
     EventPropertyGetterSPI getterFragment,
     EventPropertyGetterSPI getterTimestamp)
 {
     this.streamId = streamId;
     this.getterFragment = getterFragment;
     this.getterTimestamp = getterTimestamp;
 }
Exemplo n.º 21
0
 public PropertyDotEventSingleForge(
     int streamId,
     EventType fragmentType,
     EventPropertyGetterSPI getter)
 {
     this.streamId = streamId;
     this.fragmentType = fragmentType;
     this.getter = getter;
 }
Exemplo n.º 22
0
 public PropertyDotNonLambdaForge(
     int streamId,
     EventPropertyGetterSPI getter,
     Type returnType)
 {
     this.streamId = streamId;
     this.getter = getter;
     EvaluationType = returnType;
 }
 public SelectExprProcessorEvalByGetterFragmentAvroArray(
     int streamNum,
     EventPropertyGetterSPI getter,
     Type returnType)
 {
     _streamNum = streamNum;
     _getter = getter;
     _returnType = returnType;
 }
Exemplo n.º 24
0
 public ExprEvalByGetter(
     int streamNum,
     EventPropertyGetterSPI getter,
     Type returnType)
 {
     _streamNum = streamNum;
     _getter = getter;
     EvaluationType = returnType;
 }
Exemplo n.º 25
0
 public ExprEvaluatorStreamDTProp(
     int streamId,
     EventPropertyGetterSPI getter,
     Type getterReturnTypeBoxed)
 {
     this.streamId = streamId;
     this.getter = getter;
     EvaluationType = getterReturnTypeBoxed;
 }
Exemplo n.º 26
0
 public QueryGraphValueEntryHashKeyedForgeProp(
     ExprNode keyExpr,
     string keyProperty,
     EventPropertyGetterSPI eventPropertyGetter)
     : base(keyExpr, true)
 {
     KeyProperty = keyProperty;
     EventPropertyGetter = eventPropertyGetter;
 }
Exemplo n.º 27
0
 public ExprContextPropertyNodeFragmentEnumerationForge(
     string propertyName,
     EventType fragmentEventType,
     EventPropertyGetterSPI getterSpi)
 {
     _propertyName      = propertyName;
     _fragmentEventType = fragmentEventType;
     _getterSpi         = getterSpi;
 }
 public PropertyDotNonLambdaFragmentForge(
     int streamId,
     EventPropertyGetterSPI getter,
     bool array)
 {
     this.streamId = streamId;
     this.getter = getter;
     this.array = array;
 }
Exemplo n.º 29
0
 public ExprIdentNodeEvaluatorContext(
     int streamNum,
     Type resultType,
     EventPropertyGetterSPI getter)
 {
     this.streamNum = streamNum;
     this.resultType = resultType;
     this.getter = getter;
 }
Exemplo n.º 30
0
 /// <summary>
 ///     Ctor.
 /// </summary>
 /// <param name="getter">property getter returning the parent node</param>
 /// <param name="index">to get item at</param>
 /// <param name="fragmentFactory">for creating fragments, or null if not creating fragments</param>
 public XPathPropertyArrayItemGetter(
     EventPropertyGetterSPI getter,
     int index,
     FragmentFactorySPI fragmentFactory)
 {
     this.getter = getter;
     this.index = index;
     this.fragmentFactory = fragmentFactory;
 }