public bool RemoveEventType(String name, bool force) { if (!force) { ICollection <String> statements = _statementEventTypeRef.GetStatementNamesForType(name); if ((statements != null) && (statements.IsNotEmpty())) { throw new ConfigurationException("Event type '" + name + "' is in use by one or more statements"); } } EventType type = _eventAdapterService.GetEventTypeByName(name); if (type == null) { return(false); } _eventAdapterService.RemoveType(name); _statementEventTypeRef.RemoveReferencesType(name); _filterService.RemoveType(type); return(true); }
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); }