public static IList <EventType> UndeployTypes(ICollection <String> referencedTypes, StatementEventTypeRef statementEventTypeRef, EventAdapterService eventAdapterService, FilterService filterService) { var undeployedTypes = new List <EventType>(); foreach (String typeName in referencedTypes) { bool typeInUse = statementEventTypeRef.IsInUse(typeName); if (typeInUse) { if (Log.IsDebugEnabled) { Log.Debug("Event type '" + typeName + "' is in use, not removing type"); } continue; } if (Log.IsDebugEnabled) { Log.Debug("Event type '" + typeName + "' is no longer in use, removing type"); } var type = eventAdapterService.GetEventTypeByName(typeName); if (type != null) { var spi = (EventTypeSPI)type; if (!spi.Metadata.IsApplicationPreConfigured) { eventAdapterService.RemoveType(typeName); undeployedTypes.Add(spi); filterService.RemoveType(spi); } } } return(undeployedTypes); }