File Source: ServerEvents.java

     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.actions.metatypes;
    24  
    25  import com.dmdirc.Server;
    26  import com.dmdirc.actions.interfaces.ActionMetaType;
    27  import com.dmdirc.parser.irc.ClientInfo;
    28  
    29  /**
    30   * Defines server-related events.
    31   *
    32   * @author Chris
    33   */
         /* 
    P/P   *  Method: ServerEvents valueOf(String)
          * 
          *  Postconditions:
          *    init'ed(return_value)
          */
    34  public enum ServerEvents implements ActionMetaType {
    35      
    36      /** Server ping event type. */
             /* 
    P/P       *  Method: com.dmdirc.actions.metatypes.ServerEvents__static_init
              * 
              *  Postconditions:
              *    $VALUES == &new ServerEvents[](ServerEvents__static_init#28)
              *    SERVER_CTCP_EVENT == &new ServerEvents(ServerEvents__static_init#16)
              *    $VALUES[5] == &new ServerEvents(ServerEvents__static_init#16)
              *    SERVER_EVENT == &new ServerEvents(ServerEvents__static_init#25)
              *    $VALUES[8] == &new ServerEvents(ServerEvents__static_init#25)
              *    SERVER_EVENT_WITH_ARG == &new ServerEvents(ServerEvents__static_init#7)
              *    $VALUES[2] == &new ServerEvents(ServerEvents__static_init#7)
              *    SERVER_INVITE == &new ServerEvents(ServerEvents__static_init#22)
              *    $VALUES[7] == &new ServerEvents(ServerEvents__static_init#22)
              *    SERVER_NICKCHANGE == &new ServerEvents(ServerEvents__static_init#10)
              *    ...
              */
    37      SERVER_PING(new String[]{"server", "ping"}, Server.class, Long.class),
    38      /** Server numeric event type. */
    39      SERVER_NUMERIC(new String[]{"server", "numeric", "arguments"}, Server.class, Integer.class, String[].class),
    40      /** Server event with argument. */
    41      SERVER_EVENT_WITH_ARG(new String[]{"server", "message"}, Server.class, String.class),
    42      /** Server nick change. */
    43      SERVER_NICKCHANGE(new String[]{"server", "old nickname", "new nickname"}, Server.class, String.class, String.class),
    44      /** Server event, with source and argument. */
    45      SERVER_SOURCED_EVENT_WITH_ARG(new String[]{"server", "user", "message"}, Server.class, ClientInfo.class, String.class),
    46      /** Server CTCP event. */
    47      SERVER_CTCP_EVENT(new String[]{"server", "user", "type", "content"}, Server.class, ClientInfo.class, String.class, String.class),
    48      /** Server event with argument. */
    49      SERVER_UNKNOWN_EVENT(new String[]{"server", "source", "target", "message"}, Server.class, String.class, String.class, String.class),
    50      /** Server invite event. */
    51      SERVER_INVITE(new String[]{"server", "source", "channel"}, Server.class, ClientInfo.class, String.class),
    52      /** Server event type. */
    53      SERVER_EVENT(new String[]{"server"}, Server.class);
    54      
    55      /** The names of the arguments for this meta type. */
    56      private String[] argNames;
    57      /** The classes of the arguments for this meta type. */
    58      private Class[] argTypes;
    59      
    60      /**
    61       * Creates a new instance of this meta-type.
    62       *
    63       * @param argNames The names of the meta-type's arguments
    64       * @param argTypes The types of the meta-type's arguments
    65       */
             /* 
    P/P       *  Method: void com.dmdirc.actions.metatypes.ServerEvents(String, int, String[], Class[])
              * 
              *  Postconditions:
              *    this.argNames == argNames
              *    init'ed(this.argNames)
              *    this.argTypes == argTypes
              *    init'ed(this.argTypes)
              */
    66      ServerEvents(final String[] argNames, final Class ... argTypes) {
    67          this.argNames = argNames;
    68          this.argTypes = argTypes;
    69      }
    70      
    71      /** {@inheritDoc} */
    72      @Override
    73      public int getArity() {
                 /* 
    P/P           *  Method: int getArity()
                  * 
                  *  Preconditions:
                  *    this.argNames != null
                  *    this.argNames.length <= 232-1
                  * 
                  *  Postconditions:
                  *    return_value == this.argNames.length
                  *    return_value >= 0
                  */
    74          return argNames.length;
    75      }
    76      
    77      /** {@inheritDoc} */
    78      @Override
    79      public Class[] getArgTypes() {
                 /* 
    P/P           *  Method: Class[] getArgTypes()
                  * 
                  *  Preconditions:
                  *    init'ed(this.argTypes)
                  * 
                  *  Postconditions:
                  *    return_value == this.argTypes
                  *    init'ed(return_value)
                  */
    80          return argTypes;
    81      }
    82      
    83      /** {@inheritDoc} */
    84      @Override
    85      public String[] getArgNames() {
                 /* 
    P/P           *  Method: String[] getArgNames()
                  * 
                  *  Preconditions:
                  *    init'ed(this.argNames)
                  * 
                  *  Postconditions:
                  *    return_value == this.argNames
                  *    init'ed(return_value)
                  */
    86          return argNames;
    87      }
    88      
    89      /** {@inheritDoc} */
    90      @Override
    91      public String getGroup() {
                 /* 
    P/P           *  Method: String getGroup()
                  * 
                  *  Postconditions:
                  *    return_value == &amp;"Server.Private Events"
                  */
    92          return "Server/Private Events";
    93      }    
    94      
    95  }








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