File Source: Mode.java

         /* 
    P/P   *  Method: com.dmdirc.commandparser.commands.channel.Mode__static_init
          */
     1  /*
     2   * Copyright (c) 2006-2009 Chris Smith, Shane Mc Cormack, Gregory Holmes
     3   *
     4   * Permission is hereby granted, free of charge, to any person obtaining a copy
     5   * of this software and associated documentation files (the "Software"), to deal
     6   * in the Software without restriction, including without limitation the rights
     7   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
     8   * copies of the Software, and to permit persons to whom the Software is
     9   * furnished to do so, subject to the following conditions:
    10   *
    11   * The above copyright notice and this permission notice shall be included in
    12   * all copies or substantial portions of the Software.
    13   *
    14   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    15   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    16   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    17   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    18   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    19   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    20   * SOFTWARE.
    21   */
    22  
    23  package com.dmdirc.commandparser.commands.channel;
    24  
    25  import com.dmdirc.Channel;
    26  import com.dmdirc.Server;
    27  import com.dmdirc.commandparser.CommandArguments;
    28  import com.dmdirc.commandparser.commands.ChannelCommand;
    29  import com.dmdirc.commandparser.CommandManager;
    30  import com.dmdirc.commandparser.commands.ExternalCommand;
    31  import com.dmdirc.commandparser.commands.IntelligentCommand;
    32  import com.dmdirc.parser.irc.ChannelInfo;
    33  import com.dmdirc.ui.input.AdditionalTabTargets;
    34  import com.dmdirc.ui.input.TabCompletionType;
    35  import com.dmdirc.ui.interfaces.InputWindow;
    36  
    37  import java.util.List;
    38  
    39  /**
    40   * The mode command allows the user to inspect and change channel modes.
    41   * @author chris
    42   */
    43  public final class Mode extends ChannelCommand implements IntelligentCommand,
    44          ExternalCommand {
    45  
    46      /** Creates a new instance of Mode. */
    47      public Mode() {
                 /* 
    P/P           *  Method: void com.dmdirc.commandparser.commands.channel.Mode()
                  * 
                  *  Preconditions:
                  *    init'ed(com/dmdirc/commandparser/CommandManager.commandChar)
                  */
    48          super();
    49  
    50          CommandManager.registerCommand(this);
    51      }
    52  
    53      /** {@inheritDoc} */
    54      @Override
    55      public void execute(final InputWindow origin, final Server server,
    56              final Channel channel, final boolean isSilent, final CommandArguments args) {
                 /* 
    P/P           *  Method: void execute(InputWindow, Server, Channel, bool, CommandArguments)
                  * 
                  *  Preconditions:
                  *    args != null
                  *    channel != null
                  *    init'ed(args.words)
                  *    (soft) args.line != null
                  *    (soft) server != null
                  * 
                  *  Presumptions:
                  *    com.dmdirc.Channel:getChannelInfo(...)@57 != null
                  *    com.dmdirc.Server:getParser(...)@62 != null
                  *    java.util.Arrays:copyOfRange(...)@99 != null
                  * 
                  *  Postconditions:
                  *    args.words != null
                  *    init'ed(java.lang.String:split(...)._tainted)
                  *    java.lang.String:split(...)._tainted == 0
                  *    init'ed(java.lang.String:split(...).length)
                  * 
                  *  Test Vectors:
                  *    getArguments(...).length@59: {1..+Inf}, {0}
                  */
    57          final ChannelInfo cChannel = channel.getChannelInfo();
    58  
    59          if (args.getArguments().length == 0) {
    60              sendLine(origin, isSilent, "channelModeDiscovered", cChannel.getModeStr(), cChannel);
    61          } else {
    62              server.getParser().sendLine("MODE " + cChannel + " " + args.getArgumentsAsString());
    63          }
    64      }
    65  
    66      /** {@inheritDoc} */
    67      @Override
    68      public void execute(final InputWindow origin, final Server server,
    69              final String channel, final boolean isSilent, final CommandArguments args) {
                 /* 
    P/P           *  Method: void execute(InputWindow, Server, String, bool, CommandArguments)
                  * 
                  *  Preconditions:
                  *    args != null
                  *    init'ed(args.words)
                  *    server != null
                  *    (soft) args.line != null
                  * 
                  *  Presumptions:
                  *    com.dmdirc.Server:getParser(...)@71 != null
                  *    com.dmdirc.Server:getParser(...)@73 != null
                  *    java.util.Arrays:copyOfRange(...)@99 != null
                  * 
                  *  Postconditions:
                  *    args.words != null
                  *    init'ed(java.lang.String:split(...)._tainted)
                  *    java.lang.String:split(...)._tainted == 0
                  *    init'ed(java.lang.String:split(...).length)
                  * 
                  *  Test Vectors:
                  *    getArguments(...).length@70: {0, 2..+Inf}, {1}
                  */
    70          if (args.getArguments().length == 1) {
    71              server.getParser().sendLine("MODE " + channel);
    72          } else {
    73              server.getParser().sendLine("MODE " + channel + " " + args.getArgumentsAsString(1));
    74          }
    75      }
    76  
    77      /** {@inheritDoc} */
    78      @Override
    79      public String getName() {
                 /* 
    P/P           *  Method: String getName()
                  * 
                  *  Postconditions:
                  *    return_value == &"mode"
                  */
    80          return "mode";
    81      }
    82  
    83      /** {@inheritDoc} */
    84      @Override
    85      public boolean showInHelp() {
                 /* 
    P/P           *  Method: bool showInHelp()
                  * 
                  *  Postconditions:
                  *    return_value == 1
                  */
    86          return true;
    87      }
    88  
    89      /** {@inheritDoc} */
    90      @Override
    91      public String getHelp() {
                 /* 
    P/P           *  Method: String getHelp()
                  * 
                  *  Postconditions:
                  *    return_value == &"mode [changes] - displays or changes the current channel modes"
                  */
    92          return "mode [changes] - displays or changes the current channel modes";
    93      }
    94  
    95      /** {@inheritDoc} */
    96      @Override
    97      public AdditionalTabTargets getSuggestions(final int arg, final List<String> previousArgs) {
                 /* 
    P/P           *  Method: AdditionalTabTargets getSuggestions(int, List)
                  * 
                  *  Presumptions:
                  *    com.dmdirc.ui.input.AdditionalTabTargets:excludeAll(...)@98 != null
                  *    init'ed(com.dmdirc.ui.input.TabCompletionType.CHANNEL_NICK)
                  * 
                  *  Postconditions:
                  *    return_value != null
                  * 
                  *  Test Vectors:
                  *    arg: {-231..0}, {1..232-1}
                  */
    98          final AdditionalTabTargets res = new AdditionalTabTargets().excludeAll();
    99  
   100          if (arg > 0) {
   101              res.include(TabCompletionType.CHANNEL_NICK);
   102          }
   103  
   104          return res;
   105      }
   106  
   107  }








SofCheck Inspector Build Version : 2.17854
Mode.java 2009-Jun-25 01:54:24
Mode.class 2009-Sep-02 17:04:16