Beispiel #1
0
 public JsonEventType(
     EventTypeMetadata metadata,
     IDictionary <string, object> propertyTypes,
     EventType[] optionalSuperTypes,
     ISet <EventType> optionalDeepSupertypes,
     string startTimestampPropertyName,
     string endTimestampPropertyName,
     EventTypeNestableGetterFactory getterFactory,
     BeanEventTypeFactory beanEventTypeFactory,
     JsonEventTypeDetail detail,
     Type underlyingStandInClass,
     bool underlyingTypeIsTransient)
     : base(
         metadata,
         propertyTypes,
         optionalSuperTypes,
         optionalDeepSupertypes,
         startTimestampPropertyName,
         endTimestampPropertyName,
         getterFactory,
         beanEventTypeFactory,
         true)
 {
     _detail                    = detail;
     _underlyingType            = underlyingStandInClass;
     _underlyingTypeIsTransient = underlyingTypeIsTransient;
 }
Beispiel #2
0
        /// <summary>
        ///     Constructor takes a type name, map of property names and types, for
        ///     use with nestable Map events.
        /// </summary>
        /// <param name="propertyTypes">is pairs of property name and type</param>
        /// <param name="optionalSuperTypes">the supertypes to this type if any, or null if there are no supertypes</param>
        /// <param name="optionalDeepSuperTypes">the deep supertypes to this type if any, or null if there are no deep supertypes</param>
        /// <param name="metadata">event type metadata</param>
        /// <param name="getterFactory">getter factory</param>
        /// <param name="beanEventTypeFactory">bean factory</param>
        /// <param name="endTimestampPropertyName">end timestamp</param>
        /// <param name="startTimestampPropertyName">start timestamp</param>
        /// <param name="publicFields"></param>
        protected BaseNestableEventType(
            EventTypeMetadata metadata,
            IDictionary<string, object> propertyTypes,
            EventType[] optionalSuperTypes,
            ISet<EventType> optionalDeepSuperTypes,
            string startTimestampPropertyName,
            string endTimestampPropertyName,
            EventTypeNestableGetterFactory getterFactory,
            BeanEventTypeFactory beanEventTypeFactory,
            bool publicFields)
        {
            _metadata = metadata;
            _getterFactory = getterFactory;
            _beanEventTypeFactory = beanEventTypeFactory;
            _publicFields = publicFields;
            _startTimestampPropertyName = startTimestampPropertyName;
            _endTimestampPropertyName = endTimestampPropertyName;

            _optionalSuperTypes = optionalSuperTypes;
            _optionalDeepSuperTypes = optionalDeepSuperTypes ?? Collections.GetEmptySet<EventType>();

            // determine property set and prepare getters
            var propertySet = EventTypeUtility.GetNestableProperties(
                propertyTypes,
                beanEventTypeFactory.EventBeanTypedEventFactory,
                getterFactory,
                optionalSuperTypes,
                beanEventTypeFactory,
                publicFields);

            _nestableTypes = propertySet.NestableTypes;
            _propertyNames = propertySet.PropertyNameArray;
            _propertyItems = propertySet.PropertyItems;
            _propertyDescriptors = propertySet.PropertyDescriptors.ToArray();

            var desc = EventTypeUtility.ValidatedDetermineTimestampProps(
                this,
                startTimestampPropertyName,
                endTimestampPropertyName,
                optionalSuperTypes);
            _startTimestampPropertyName = desc.Start;
            _endTimestampPropertyName = desc.End;
        }
Beispiel #3
0
        /// <summary>
        /// Constructor takes a type name, map of property names and types, for use with nestable Map events.
        /// </summary>
        /// <param name="metadata">event type metadata</param>
        /// <param name="typeName">is the event type name used to distinquish map types that have the same property types,empty string for anonymous maps, or for insert-into statements generating map events the stream name</param>
        /// <param name="eventTypeId">The event type id.</param>
        /// <param name="eventAdapterService">is required for access to objects properties within map values</param>
        /// <param name="propertyTypes">is pairs of property name and type</param>
        /// <param name="optionalSuperTypes">the supertypes to this type if any, or null if there are no supertypes</param>
        /// <param name="optionalDeepSupertypes">the deep supertypes to this type if any, or null if there are no deep supertypes</param>
        /// <param name="typeConfig">The type config.</param>
        /// <param name="getterFactory">The getter factory.</param>
        protected BaseNestableEventType(
            EventTypeMetadata metadata,
            String typeName,
            int eventTypeId,
            EventAdapterService eventAdapterService,
            IDictionary <String, Object> propertyTypes,
            EventType[] optionalSuperTypes,
            ICollection <EventType> optionalDeepSupertypes,
            ConfigurationEventTypeWithSupertype typeConfig,
            EventTypeNestableGetterFactory getterFactory)
        {
            _metadata           = metadata;
            _eventTypeId        = eventTypeId;
            _typeName           = typeName;
            EventAdapterService = eventAdapterService;
            GetterFactory       = getterFactory;

            _optionalSuperTypes     = optionalSuperTypes;
            _optionalDeepSupertypes = optionalDeepSupertypes ?? Collections.GetEmptySet <EventType>();

            // determine property set and prepare getters
            var propertySet = EventTypeUtility.GetNestableProperties(
                propertyTypes, eventAdapterService, getterFactory, optionalSuperTypes);

            NestableTypes        = propertySet.NestableTypes;
            _propertyNames       = propertySet.PropertyNameArray;
            _propertyItems       = propertySet.PropertyItems;
            _propertyDescriptors = propertySet.PropertyDescriptors.ToArray();

            var desc = EventTypeUtility.ValidatedDetermineTimestampProps(
                this, typeConfig == null ? null : typeConfig.StartTimestampPropertyName,
                typeConfig == null ? null : typeConfig.EndTimestampPropertyName, optionalSuperTypes);

            _startTimestampPropertyName = desc.Start;
            _endTimestampPropertyName   = desc.End;
        }