Browse Source

Merge pull request #40 from csmith/master

Remove some bits of PerformWrapper.
pull/63/head
Greg Holmes 9 years ago
parent
commit
0b02f39318

+ 1
- 9
src/com/dmdirc/ClientModule.java View File

25
 import com.dmdirc.actions.ActionFactory;
25
 import com.dmdirc.actions.ActionFactory;
26
 import com.dmdirc.actions.ActionGroup;
26
 import com.dmdirc.actions.ActionGroup;
27
 import com.dmdirc.actions.ActionManager;
27
 import com.dmdirc.actions.ActionManager;
28
-import com.dmdirc.actions.wrappers.PerformWrapper;
29
 import com.dmdirc.commandline.CommandLineOptionsModule;
28
 import com.dmdirc.commandline.CommandLineOptionsModule;
30
 import com.dmdirc.commandline.CommandLineOptionsModule.Directory;
29
 import com.dmdirc.commandline.CommandLineOptionsModule.Directory;
31
 import com.dmdirc.commandline.CommandLineOptionsModule.DirectoryType;
30
 import com.dmdirc.commandline.CommandLineOptionsModule.DirectoryType;
125
     public ActionManager getActionManager(
124
     public ActionManager getActionManager(
126
             final IdentityController identityController,
125
             final IdentityController identityController,
127
             final ActionFactory actionFactory,
126
             final ActionFactory actionFactory,
128
-            final Provider<Set<ActionGroup>> actionWrappersProvider,
129
             final Provider<UpdateManager> updateManagerProvider,
127
             final Provider<UpdateManager> updateManagerProvider,
130
             final DMDircMBassador eventBus,
128
             final DMDircMBassador eventBus,
131
             @Directory(DirectoryType.ACTIONS) final String directory) {
129
             @Directory(DirectoryType.ACTIONS) final String directory) {
132
         final ActionManager actionManager = new ActionManager(identityController,
130
         final ActionManager actionManager = new ActionManager(identityController,
133
-                actionFactory, actionWrappersProvider, updateManagerProvider, eventBus, directory);
131
+                actionFactory, updateManagerProvider, eventBus, directory);
134
         ActionManager.setActionManager(actionManager);
132
         ActionManager.setActionManager(actionManager);
135
         return actionManager;
133
         return actionManager;
136
     }
134
     }
171
         return manager;
169
         return manager;
172
     }
170
     }
173
 
171
 
174
-    @Provides(type = Provides.Type.SET)
175
-    @Singleton
176
-    public ActionGroup getPerformWrapper(final PerformWrapper wrapper) {
177
-        return wrapper;
178
-    }
179
-
180
     @Provides
172
     @Provides
181
     @Singleton
173
     @Singleton
182
     @GlobalConfig
174
     @GlobalConfig

+ 0
- 10
src/com/dmdirc/actions/ActionManager.java View File

54
 import java.util.HashMap;
54
 import java.util.HashMap;
55
 import java.util.List;
55
 import java.util.List;
56
 import java.util.Map;
56
 import java.util.Map;
57
-import java.util.Set;
58
 
57
 
59
 import javax.inject.Provider;
58
 import javax.inject.Provider;
60
 
59
 
78
     private final IdentityController identityManager;
77
     private final IdentityController identityManager;
79
     /** The factory to use to create actions. */
78
     /** The factory to use to create actions. */
80
     private final ActionFactory factory;
79
     private final ActionFactory factory;
81
-    /** Provider for action wrappers. */
82
-    private final Provider<Set<ActionGroup>> actionWrappersProvider;
83
     /** Provider of an update manager. */
80
     /** Provider of an update manager. */
84
     private final Provider<UpdateManager> updateManagerProvider;
81
     private final Provider<UpdateManager> updateManagerProvider;
85
     /** A list of registered action types. */
82
     /** A list of registered action types. */
109
      *
106
      *
110
      * @param identityManager        The IdentityManager to load configuration from.
107
      * @param identityManager        The IdentityManager to load configuration from.
111
      * @param factory                The factory to use to create new actions.
108
      * @param factory                The factory to use to create new actions.
112
-     * @param actionWrappersProvider Provider of action wrappers.
113
      * @param updateManagerProvider  Provider of an update manager, to register components.
109
      * @param updateManagerProvider  Provider of an update manager, to register components.
114
      * @param eventBus               The global event bus to monitor.
110
      * @param eventBus               The global event bus to monitor.
115
      * @param directory              The directory to load and save actions in.
111
      * @param directory              The directory to load and save actions in.
117
     public ActionManager(
113
     public ActionManager(
118
             final IdentityController identityManager,
114
             final IdentityController identityManager,
119
             final ActionFactory factory,
115
             final ActionFactory factory,
120
-            final Provider<Set<ActionGroup>> actionWrappersProvider,
121
             final Provider<UpdateManager> updateManagerProvider,
116
             final Provider<UpdateManager> updateManagerProvider,
122
             final DMDircMBassador eventBus,
117
             final DMDircMBassador eventBus,
123
             final String directory) {
118
             final String directory) {
124
         this.identityManager = identityManager;
119
         this.identityManager = identityManager;
125
         this.factory = factory;
120
         this.factory = factory;
126
-        this.actionWrappersProvider = actionWrappersProvider;
127
         this.updateManagerProvider = updateManagerProvider;
121
         this.updateManagerProvider = updateManagerProvider;
128
         this.eventBus = eventBus;
122
         this.eventBus = eventBus;
129
         this.directory = directory;
123
         this.directory = directory;
166
         registerComparisons(colourComparisons.getComparisons());
160
         registerComparisons(colourComparisons.getComparisons());
167
         registerComponents(CoreActionComponent.values());
161
         registerComponents(CoreActionComponent.values());
168
 
162
 
169
-        for (ActionGroup wrapper : actionWrappersProvider.get()) {
170
-            addGroup(wrapper);
171
-        }
172
-
173
         new WhoisNumericFormatter(identityManager.getAddonSettings(), eventBus).register();
163
         new WhoisNumericFormatter(identityManager.getAddonSettings(), eventBus).register();
174
 
164
 
175
         eventBus.subscribe(this);
165
         eventBus.subscribe(this);

+ 8
- 69
src/com/dmdirc/actions/wrappers/PerformWrapper.java View File

22
 
22
 
23
 package com.dmdirc.actions.wrappers;
23
 package com.dmdirc.actions.wrappers;
24
 
24
 
25
-import com.dmdirc.DMDircMBassador;
26
 import com.dmdirc.actions.Action;
25
 import com.dmdirc.actions.Action;
27
 import com.dmdirc.actions.ActionComponentChain;
26
 import com.dmdirc.actions.ActionComponentChain;
28
 import com.dmdirc.actions.ActionCondition;
27
 import com.dmdirc.actions.ActionCondition;
33
 import com.dmdirc.actions.CoreActionComparison;
32
 import com.dmdirc.actions.CoreActionComparison;
34
 import com.dmdirc.actions.CoreActionComponent;
33
 import com.dmdirc.actions.CoreActionComponent;
35
 import com.dmdirc.actions.CoreActionType;
34
 import com.dmdirc.actions.CoreActionType;
36
-import com.dmdirc.events.UserErrorEvent;
35
+import com.dmdirc.commandparser.auto.AutoCommand;
36
+import com.dmdirc.commandparser.auto.AutoCommandManager;
37
 import com.dmdirc.interfaces.Connection;
37
 import com.dmdirc.interfaces.Connection;
38
 import com.dmdirc.interfaces.actions.ActionComponent;
38
 import com.dmdirc.interfaces.actions.ActionComponent;
39
 import com.dmdirc.interfaces.actions.ActionType;
39
 import com.dmdirc.interfaces.actions.ActionType;
40
-import com.dmdirc.logger.ErrorLevel;
41
 
40
 
42
 import java.util.ArrayList;
41
 import java.util.ArrayList;
43
 import java.util.List;
42
 import java.util.List;
47
 
46
 
48
 /**
47
 /**
49
  * An action wrapper for performs.
48
  * An action wrapper for performs.
49
+ *
50
+ * @deprecated Use {@link AutoCommandManager}
50
  */
51
  */
51
 @Singleton
52
 @Singleton
53
+@Deprecated
52
 public class PerformWrapper extends ActionGroup {
54
 public class PerformWrapper extends ActionGroup {
53
 
55
 
54
     /** The component name for per-profile perform conditions. */
56
     /** The component name for per-profile perform conditions. */
55
     private static final String PP_COMP_NAME = "SERVER_PROFILE.IDENTITY_NAME";
57
     private static final String PP_COMP_NAME = "SERVER_PROFILE.IDENTITY_NAME";
56
     /** Factory to use for actions. */
58
     /** Factory to use for actions. */
57
     private final ActionFactory actionFactory;
59
     private final ActionFactory actionFactory;
58
-    /** The event bus to post events to. */
59
-    private final DMDircMBassador eventBus;
60
 
60
 
61
     /**
61
     /**
62
      * Creates a new instance of PerformWrapper.
62
      * Creates a new instance of PerformWrapper.
63
      *
63
      *
64
      * @param actionFactory Factory to use to create actions.
64
      * @param actionFactory Factory to use to create actions.
65
-     * @param eventBus      The event bus to post events to.
66
      */
65
      */
67
     @Inject
66
     @Inject
68
-    public PerformWrapper(final ActionFactory actionFactory,
69
-            final DMDircMBassador eventBus) {
67
+    public PerformWrapper(final ActionFactory actionFactory) {
70
         super("performs");
68
         super("performs");
71
 
69
 
72
         this.actionFactory = actionFactory;
70
         this.actionFactory = actionFactory;
73
-        this.eventBus = eventBus;
74
-    }
75
-
76
-    @Override
77
-    public void add(final Action action) {
78
-        if (action.getTriggers().length != 1) {
79
-            eventBus.publishAsync(new UserErrorEvent(ErrorLevel.MEDIUM, null,
80
-                    "Invalid perform action: " + action.getName(),
81
-                    "Perform actions may only have one trigger"));
82
-        } else if (action.getTriggers()[0] != CoreActionType.SERVER_CONNECTED) {
83
-            eventBus.publishAsync(new UserErrorEvent(ErrorLevel.MEDIUM, null,
84
-                    "Invalid perform action: " + action.getName(),
85
-                    "Perform actions must be triggered when a server connects"));
86
-        } else if (!checkConditions(action.getConditions())) {
87
-            eventBus.publishAsync(new UserErrorEvent(ErrorLevel.MEDIUM, null,
88
-                    "Invalid perform action: " + action.getName(),
89
-                    "Perform actions must have exactly one or two conditions, "
90
-                    + "one may target the server's name or network, and one may "
91
-                    + "target the server's profile name. No other targets are "
92
-                    + "allowed."));
93
-        } else {
94
-            synchronized (this) {
95
-                super.add(action);
96
-            }
97
-        }
98
-    }
99
-
100
-    @Override
101
-    public void deleteAction(final Action action) {
102
-        synchronized (this) {
103
-            super.deleteAction(action);
104
-        }
105
     }
71
     }
106
 
72
 
107
     /**
73
     /**
187
         return true;
153
         return true;
188
     }
154
     }
189
 
155
 
190
-    /**
191
-     * Checks that the specified conditions are valid for a perform action.
192
-     *
193
-     * @param conditions The conditions to be checked
194
-     *
195
-     * @since 0.6.3m2
196
-     * @return True if the conditions are valid, false otherwise
197
-     */
198
-    protected boolean checkConditions(final Iterable<ActionCondition> conditions) {
199
-        boolean target = false;
200
-        boolean profile = false;
201
-
202
-        for (ActionCondition condition : conditions) {
203
-            if ((condition.getComponent() == CoreActionComponent.SERVER_NETWORK
204
-                    || condition.getComponent() == CoreActionComponent.SERVER_NAME)
205
-                    && !target) {
206
-                target = true;
207
-            } else if (condition.getComponent() instanceof ActionComponentChain
208
-                    && PP_COMP_NAME.equals(condition.getComponent().toString())
209
-                    && !profile) {
210
-                profile = true;
211
-            } else {
212
-                return false;
213
-            }
214
-        }
215
-
216
-        return target || profile;
217
-    }
218
-
219
     /**
156
     /**
220
      * Creates a new, empty, perform wrapper for the specified server or network. Note that both
157
      * Creates a new, empty, perform wrapper for the specified server or network. Note that both
221
      * server and network must be specified, and exactly one of them must be empty.
158
      * server and network must be specified, and exactly one of them must be empty.
304
      * Describes one specific perform.
241
      * Describes one specific perform.
305
      *
242
      *
306
      * @since 0.6.4
243
      * @since 0.6.4
244
+     * @deprecated See {@link AutoCommand}
307
      */
245
      */
246
+    @Deprecated
308
     public static class PerformDescription {
247
     public static class PerformDescription {
309
 
248
 
310
         /** The type of the perform being described. */
249
         /** The type of the perform being described. */

+ 0
- 5
src/com/dmdirc/plugins/PluginInjectorInitialiser.java View File

27
 import com.dmdirc.actions.ActionFactory;
27
 import com.dmdirc.actions.ActionFactory;
28
 import com.dmdirc.actions.ActionManager;
28
 import com.dmdirc.actions.ActionManager;
29
 import com.dmdirc.actions.ActionSubstitutorFactory;
29
 import com.dmdirc.actions.ActionSubstitutorFactory;
30
-import com.dmdirc.actions.wrappers.PerformWrapper;
31
 import com.dmdirc.commandparser.CommandManager;
30
 import com.dmdirc.commandparser.CommandManager;
32
 import com.dmdirc.config.prefs.PreferencesManager;
31
 import com.dmdirc.config.prefs.PreferencesManager;
33
 import com.dmdirc.interfaces.ConnectionManager;
32
 import com.dmdirc.interfaces.ConnectionManager;
62
     private final WindowManager windowManager;
61
     private final WindowManager windowManager;
63
     private final StatusBarManager statusBarManager;
62
     private final StatusBarManager statusBarManager;
64
     private final PreferencesManager preferencesManager;
63
     private final PreferencesManager preferencesManager;
65
-    private final PerformWrapper performWrapper;
66
     private final LifecycleController lifecycleController;
64
     private final LifecycleController lifecycleController;
67
     private final CorePluginExtractor corePluginExtractor;
65
     private final CorePluginExtractor corePluginExtractor;
68
     private final URLBuilder urlBuilder;
66
     private final URLBuilder urlBuilder;
83
             final WindowManager windowManager,
81
             final WindowManager windowManager,
84
             final StatusBarManager statusBarManager,
82
             final StatusBarManager statusBarManager,
85
             final PreferencesManager preferencesManager,
83
             final PreferencesManager preferencesManager,
86
-            final PerformWrapper performWrapper,
87
             final LifecycleController lifecycleController,
84
             final LifecycleController lifecycleController,
88
             final CorePluginExtractor corePluginExtractor,
85
             final CorePluginExtractor corePluginExtractor,
89
             final URLBuilder urlBuilder,
86
             final URLBuilder urlBuilder,
102
         this.windowManager = windowManager;
99
         this.windowManager = windowManager;
103
         this.statusBarManager = statusBarManager;
100
         this.statusBarManager = statusBarManager;
104
         this.preferencesManager = preferencesManager;
101
         this.preferencesManager = preferencesManager;
105
-        this.performWrapper = performWrapper;
106
         this.lifecycleController = lifecycleController;
102
         this.lifecycleController = lifecycleController;
107
         this.corePluginExtractor = corePluginExtractor;
103
         this.corePluginExtractor = corePluginExtractor;
108
         this.urlBuilder = urlBuilder;
104
         this.urlBuilder = urlBuilder;
127
         injector.addParameter(WindowManager.class, windowManager);
123
         injector.addParameter(WindowManager.class, windowManager);
128
         injector.addParameter(statusBarManager);
124
         injector.addParameter(statusBarManager);
129
         injector.addParameter(PreferencesManager.class, preferencesManager);
125
         injector.addParameter(PreferencesManager.class, preferencesManager);
130
-        injector.addParameter(PerformWrapper.class, performWrapper);
131
         injector.addParameter(LifecycleController.class, lifecycleController);
126
         injector.addParameter(LifecycleController.class, lifecycleController);
132
         injector.addParameter(corePluginExtractor);
127
         injector.addParameter(corePluginExtractor);
133
         injector.addParameter(actionFactory);
128
         injector.addParameter(actionFactory);

Loading…
Cancel
Save