public AvroEventType(EventTypeMetadata metadata,
Schema avroSchema,
String startTimestampPropertyName,
String endTimestampPropertyName,
EventType[] optionalSuperTypes,
Set<EventType> deepSupertypes,
EventBeanTypedEventFactory eventBeanTypedEventFactory,
EventTypeAvroHandler eventTypeAvroHandler) {
this.metadata = metadata;
this.avroSchema = avroSchema;
this.optionalSuperTypes = optionalSuperTypes;
this.deepSupertypes = deepSupertypes == null ? Collections.emptySet() : deepSupertypes;
this.propertyItems = new LinkedHashMap<>();
this.eventBeanTypedEventFactory = eventBeanTypedEventFactory;
this.eventTypeAvroHandler = eventTypeAvroHandler;
init();
EventTypeUtility.TimestampPropertyDesc desc = EventTypeUtility.validatedDetermineTimestampProps(this, startTimestampPropertyName, endTimestampPropertyName, optionalSuperTypes);
this.startTimestampPropertyName = desc.getStart();
this.endTimestampPropertyName = desc.getEnd();
}