/*
 * Copyright (c) 2006-2015 DMDirc Developers
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

package com.dmdirc.parser.irc.processors;

import dagger.Module;
import dagger.Provides;

/**
 * Dagger module that supplies a set of processors.
 */
@Module(library = true, complete = false)
public class ProcessorsModule {

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final Process001 processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final Process464 processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final Process004005 processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessAccount processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessAway processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessCap processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessInvite processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessJoin processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessKick processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessList processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessListModes processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessMessage processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessMode processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessMOTD processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessNames processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessNick processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessNickInUse processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessNoticeAuth processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessPart processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessQuit processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessTopic processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessWallops processor) {
        return processor;
    }

    @Provides(type = Provides.Type.SET)
    public IRCProcessor getProcessor(final ProcessWho processor) {
        return processor;
    }

}

@@ -1405,32 +1405,35 @@
 IRCProcessor get
+001
 Processor(final 
@@ -1548,32 +1548,35 @@
 IRCProcessor get
+464
 Processor(final 
@@ -1691,32 +1691,38 @@
 IRCProcessor get
+004005
 Processor(final 
@@ -1840,32 +1840,39 @@
 IRCProcessor get
+Account
 Processor(final 
@@ -1991,32 +1991,36 @@
 IRCProcessor get
+Away
 Processor(final 
@@ -2136,32 +2136,35 @@
 IRCProcessor get
+Cap
 Processor(final 
@@ -2279,32 +2279,38 @@
 IRCProcessor get
+Invite
 Processor(final 
@@ -2428,32 +2428,36 @@
 IRCProcessor get
+Join
 Processor(final 
@@ -2573,32 +2573,36 @@
 IRCProcessor get
+Kick
 Processor(final 
@@ -2718,32 +2718,36 @@
 IRCProcessor get
+List
 Processor(final 
@@ -2863,32 +2863,37 @@
 IRCProcessor get
+Modes
 Processor(final 
@@ -3014,32 +3014,39 @@
 IRCProcessor get
+Message
 Processor(final 
@@ -3165,32 +3165,36 @@
 IRCProcessor get
+Mode
 Processor(final 
@@ -3310,32 +3310,36 @@
 IRCProcessor get
+MOTD
 Processor(final 
@@ -3455,32 +3455,37 @@
 IRCProcessor get
+Names
 Processor(final 
@@ -3602,32 +3602,36 @@
 IRCProcessor get
+Nick
 Processor(final 
@@ -3747,32 +3747,41 @@
 IRCProcessor get
+NickInUse
 Processor(final 
@@ -3902,32 +3902,42 @@
 IRCProcessor get
+NoticeAuth
 Processor(final 
@@ -4060,32 +4060,36 @@
 RCProcessor getP
+artP
 rocessor(final P
@@ -4204,32 +4204,36 @@
 IRCProcessor get
+Quit
 Processor(final 
@@ -4349,32 +4349,37 @@
 IRCProcessor get
+Topic
 Processor(final 
@@ -4496,32 +4496,39 @@
 IRCProcessor get
+Wallops
 Processor(final 
@@ -4655,16 +4655,19 @@
 ssor get
+Who
 Processo

Make method names in ProcessorsModule unique.