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);
        }
Esempio n. 2
0
        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);
        }