private static void BuildAvroType( EventTypeRepositoryImpl eventTypeRepositoryPreconfigured, string eventTypeName, ConfigurationCommonEventTypeAvro config, EventTypeAvroHandler eventTypeAvroHandler, EventBeanTypedEventFactory eventBeanTypedEventFactory) { var metadata = new EventTypeMetadata( eventTypeName, null, EventTypeTypeClass.APPLICATION, EventTypeApplicationType.AVRO, NameAccessModifier.PRECONFIGURED, EventTypeBusModifier.NONBUS, false, new EventTypeIdPair(CRC32Util.ComputeCRC32(eventTypeName), -1)); var avroSuperTypes = EventTypeUtility.GetSuperTypesDepthFirst( config.SuperTypes, EventUnderlyingType.AVRO, eventTypeRepositoryPreconfigured); var newEventType = eventTypeAvroHandler.NewEventTypeFromSchema( metadata, eventBeanTypedEventFactory, config, avroSuperTypes.First, avroSuperTypes.Second); eventTypeRepositoryPreconfigured.AddType(newEventType); }
private static void AddNestableObjectArrayType( string eventTypeName, IDictionary<string, object> propertyTypesMayHavePrimitive, ConfigurationCommonEventTypeObjectArray optionalConfig, BeanEventTypeFactory beanEventTypeFactory, EventTypeRepositoryImpl repo) { if (optionalConfig != null && optionalConfig.SuperTypes.Count > 1) { throw new EventAdapterException(ConfigurationCommonEventTypeObjectArray.SINGLE_SUPERTYPE_MSG); } var propertyTypes = EventTypeUtility.GetPropertyTypesNonPrimitive(propertyTypesMayHavePrimitive); var metadata = new EventTypeMetadata( eventTypeName, null, EventTypeTypeClass.APPLICATION, EventTypeApplicationType.OBJECTARR, NameAccessModifier.PRECONFIGURED, EventTypeBusModifier.NONBUS, false, new EventTypeIdPair(CRC32Util.ComputeCRC32(eventTypeName), -1)); string[] superTypes = null; if (optionalConfig != null && optionalConfig.SuperTypes != null && !optionalConfig.SuperTypes.IsEmpty()) { superTypes = optionalConfig.SuperTypes.ToArray(); } var newEventType = beanEventTypeFactory.EventTypeFactory.CreateObjectArray( metadata, propertyTypes, superTypes, optionalConfig != null ? optionalConfig.StartTimestampPropertyName : null, optionalConfig != null ? optionalConfig.EndTimestampPropertyName : null, beanEventTypeFactory, repo); var existingType = repo.GetTypeByName(eventTypeName); if (existingType != null) { // The existing type must be the same as the type createdStatement if (newEventType.EqualsCompareType(existingType) != null) { var message = newEventType.CompareEquals(existingType); throw new EPException( "Event type named '" + eventTypeName + "' has already been declared with differing column name or type information: " + message.Message, message); } // Since it's the same, return the existing type return; } repo.AddType(newEventType); }
private static void AddXMLDOMType( EventTypeRepositoryImpl repo, string eventTypeName, ConfigurationCommonEventTypeXMLDOM detail, SchemaModel schemaModel, BeanEventTypeFactory beanEventTypeFactory, XMLFragmentEventTypeFactory xmlFragmentEventTypeFactory) { if (detail.RootElementName == null) { throw new EventAdapterException("Required root element name has not been supplied"); } var existingType = repo.GetTypeByName(eventTypeName); if (existingType != null) { var message = "Event type named '" + eventTypeName + "' has already been declared with differing column name or type information"; throw new ConfigurationException(message); } var propertyAgnostic = detail.SchemaResource == null && detail.SchemaText == null; var metadata = new EventTypeMetadata( eventTypeName, null, EventTypeTypeClass.STREAM, EventTypeApplicationType.XML, NameAccessModifier.PRECONFIGURED, EventTypeBusModifier.BUS, propertyAgnostic, new EventTypeIdPair(CRC32Util.ComputeCRC32(eventTypeName), -1)); var type = beanEventTypeFactory.EventTypeFactory.CreateXMLType( metadata, detail, schemaModel, null, metadata.Name, beanEventTypeFactory, xmlFragmentEventTypeFactory, repo); repo.AddType(type); if (type is SchemaXMLEventType) { xmlFragmentEventTypeFactory.AddRootType((SchemaXMLEventType) type); } }
private static void AddVariantStream( string name, ConfigurationCommonVariantStream config, EventTypeRepositoryImpl repo, EventTypeFactory eventTypeFactory) { var variantSpec = ValidateVariantStream(name, config, repo); var metadata = new EventTypeMetadata( name, null, EventTypeTypeClass.VARIANT, EventTypeApplicationType.VARIANT, NameAccessModifier.PRECONFIGURED, EventTypeBusModifier.BUS, false, new EventTypeIdPair(CRC32Util.ComputeCRC32(name), -1)); var variantEventType = eventTypeFactory.CreateVariant(metadata, variantSpec); repo.AddType(variantEventType); }