Coverage report

  %line %branch
org.apache.commons.net.telnet.TelnetOptionHandler
76% 
100% 

 1  
 /*
 2  
  * Copyright 2003-2004 The Apache Software Foundation
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *     http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 package org.apache.commons.net.telnet;
 17  
 
 18  
 /***
 19  
  * The TelnetOptionHandler class is the base class to be used
 20  
  * for implementing handlers for telnet options.
 21  
  * <p>
 22  
  * TelnetOptionHandler implements basic option handling
 23  
  * functionality and defines abstract methods that must be
 24  
  * implemented to define subnegotiation behaviour.
 25  
  * <p>
 26  
  * @author Bruno D'Avanzo
 27  
  ***/
 28  
 public abstract class TelnetOptionHandler
 29  
 {
 30  
     /***
 31  
      * Option code
 32  
      ***/
 33  85
     private int optionCode = -1;
 34  
 
 35  
     /***
 36  
      * true if the option should be activated on the local side
 37  
      ***/
 38  85
     private boolean initialLocal = false;
 39  
 
 40  
     /***
 41  
      * true if the option should be activated on the remote side
 42  
      ***/
 43  85
     private boolean initialRemote = false;
 44  
 
 45  
     /***
 46  
      * true if the option should be accepted on the local side
 47  
      ***/
 48  85
     private boolean acceptLocal = false;
 49  
 
 50  
     /***
 51  
      * true if the option should be accepted on the remote side
 52  
      ***/
 53  85
     private boolean acceptRemote = false;
 54  
 
 55  
     /***
 56  
      * true if the option is active on the local side
 57  
      ***/
 58  85
     private boolean doFlag = false;
 59  
 
 60  
     /***
 61  
      * true if the option is active on the remote side
 62  
      ***/
 63  85
     private boolean willFlag = false;
 64  
 
 65  
     /***
 66  
      * Constructor for the TelnetOptionHandler. Allows defining desired
 67  
      * initial setting for local/remote activation of this option and
 68  
      * behaviour in case a local/remote activation request for this
 69  
      * option is received.
 70  
      * <p>
 71  
      * @param optcode - Option code.
 72  
      * @param initlocal - if set to true, a WILL is sent upon connection.
 73  
      * @param initremote - if set to true, a DO is sent upon connection.
 74  
      * @param acceptlocal - if set to true, any DO request is accepted.
 75  
      * @param acceptremote - if set to true, any WILL request is accepted.
 76  
      ***/
 77  
     public TelnetOptionHandler(int optcode,
 78  
                                 boolean initlocal,
 79  
                                 boolean initremote,
 80  
                                 boolean acceptlocal,
 81  
                                 boolean acceptremote)
 82  85
     {
 83  85
         optionCode = optcode;
 84  85
         initialLocal = initlocal;
 85  85
         initialRemote = initremote;
 86  85
         acceptLocal = acceptlocal;
 87  85
         acceptRemote = acceptremote;
 88  85
     }
 89  
 
 90  
 
 91  
     /***
 92  
      * Returns the option code for this option.
 93  
      * <p>
 94  
      * @return Option code.
 95  
      ***/
 96  
     public int getOptionCode()
 97  
     {
 98  56
         return (optionCode);
 99  
     }
 100  
 
 101  
     /***
 102  
      * Returns a boolean indicating whether to accept a DO
 103  
      * request coming from the other end.
 104  
      * <p>
 105  
      * @return true if a DO request shall be accepted.
 106  
      ***/
 107  
     public boolean getAcceptLocal()
 108  
     {
 109  19
         return (acceptLocal);
 110  
     }
 111  
 
 112  
     /***
 113  
      * Returns a boolean indicating whether to accept a WILL
 114  
      * request coming from the other end.
 115  
      * <p>
 116  
      * @return true if a WILL request shall be accepted.
 117  
      ***/
 118  
     public boolean getAcceptRemote()
 119  
     {
 120  13
         return (acceptRemote);
 121  
     }
 122  
 
 123  
     /***
 124  
      * Set behaviour of the option for DO requests coming from
 125  
      * the other end.
 126  
      * <p>
 127  
      * @param accept - if true, subsequent DO requests will be accepted.
 128  
      ***/
 129  
     public void setAcceptLocal(boolean accept)
 130  
     {
 131  0
         acceptLocal = accept;
 132  0
     }
 133  
 
 134  
     /***
 135  
      * Set behaviour of the option for WILL requests coming from
 136  
      * the other end.
 137  
      * <p>
 138  
      * @param accept - if true, subsequent WILL requests will be accepted.
 139  
      ***/
 140  
     public void setAcceptRemote(boolean accept)
 141  
     {
 142  0
         acceptRemote = accept;
 143  0
     }
 144  
 
 145  
     /***
 146  
      * Returns a boolean indicating whether to send a WILL request
 147  
      * to the other end upon connection.
 148  
      * <p>
 149  
      * @return true if a WILL request shall be sent upon connection.
 150  
      ***/
 151  
     public boolean getInitLocal()
 152  
     {
 153  36
         return (initialLocal);
 154  
     }
 155  
 
 156  
     /***
 157  
      * Returns a boolean indicating whether to send a DO request
 158  
      * to the other end upon connection.
 159  
      * <p>
 160  
      * @return true if a DO request shall be sent upon connection.
 161  
      ***/
 162  
     public boolean getInitRemote()
 163  
     {
 164  36
         return (initialRemote);
 165  
     }
 166  
 
 167  
     /***
 168  
      * Tells this option whether to send a WILL request upon connection.
 169  
      * <p>
 170  
      * @param init - if true, a WILL request will be sent upon subsequent
 171  
      * connections.
 172  
      ***/
 173  
     public void setInitLocal(boolean init)
 174  
     {
 175  0
         initialLocal = init;
 176  0
     }
 177  
 
 178  
     /***
 179  
      * Tells this option whether to send a DO request upon connection.
 180  
      * <p>
 181  
      * @param init - if true, a DO request will be sent upon subsequent
 182  
      * connections.
 183  
      ***/
 184  
     public void setInitRemote(boolean init)
 185  
     {
 186  0
         initialRemote = init;
 187  0
     }
 188  
 
 189  
     /***
 190  
      * Method called upon reception of a subnegotiation for this option
 191  
      * coming from the other end.
 192  
      * Must be implemented by the actual TelnetOptionHandler to specify
 193  
      * which response must be sent for the subnegotiation request.
 194  
      * <p>
 195  
      * @param suboptionData - the sequence received, whithout IAC SB & IAC SE
 196  
      * @param suboptionLength - the length of data in suboption_data
 197  
      * <p>
 198  
      * @return response to be sent to the subnegotiation sequence. TelnetClient
 199  
      * will add IAC SB & IAC SE. null means no response
 200  
      ***/
 201  
     public abstract int[] answerSubnegotiation(class="keyword">int suboptionData[],
 202  
                             int suboptionLength);
 203  
 
 204  
     /***
 205  
      * This method is invoked whenever this option is acknowledged active on
 206  
      * the local end (TelnetClient sent a WILL, remote side sent a DO).
 207  
      * The method is used to specify a subnegotiation sequence that will be
 208  
      * sent by TelnetClient when the option is activated.
 209  
      * <p>
 210  
      * @return subnegotiation sequence to be sent by TelnetClient. TelnetClient
 211  
      * will add IAC SB & IAC SE. null means no subnegotiation.
 212  
      ***/
 213  
     public abstract int[] startSubnegotiationLocal();
 214  
 
 215  
     /***
 216  
      * This method is invoked whenever this option is acknowledged active on
 217  
      * the remote end (TelnetClient sent a DO, remote side sent a WILL).
 218  
      * The method is used to specify a subnegotiation sequence that will be
 219  
      * sent by TelnetClient when the option is activated.
 220  
      * <p>
 221  
      * @return subnegotiation sequence to be sent by TelnetClient. TelnetClient
 222  
      * will add IAC SB & IAC SE. null means no subnegotiation.
 223  
      ***/
 224  
     public abstract int[] startSubnegotiationRemote();
 225  
 
 226  
     /***
 227  
      * Returns a boolean indicating whether a WILL request sent to the other
 228  
      * side has been acknowledged.
 229  
      * <p>
 230  
      * @return true if a WILL sent to the other side has been acknowledged.
 231  
      ***/
 232  
     boolean getWill()
 233  
     {
 234  13
         return willFlag;
 235  
     }
 236  
 
 237  
     /***
 238  
      * Tells this option whether a WILL request sent to the other
 239  
      * side has been acknowledged (invoked by TelnetClient).
 240  
      * <p>
 241  
      * @param state - if true, a WILL request has been acknowledged.
 242  
      ***/
 243  
     void setWill(boolean state)
 244  
     {
 245  43
         willFlag = state;
 246  43
     }
 247  
 
 248  
     /***
 249  
      * Returns a boolean indicating whether a DO request sent to the other
 250  
      * side has been acknowledged.
 251  
      * <p>
 252  
      * @return true if a DO sent to the other side has been acknowledged.
 253  
      ***/
 254  
     boolean getDo()
 255  
     {
 256  13
         return doFlag;
 257  
     }
 258  
 
 259  
 
 260  
     /***
 261  
      * Tells this option whether a DO request sent to the other
 262  
      * side has been acknowledged (invoked by TelnetClient).
 263  
      * <p>
 264  
      * @param state - if true, a DO request has been acknowledged.
 265  
      ***/
 266  
     void setDo(boolean state)
 267  
     {
 268  36
         doFlag = state;
 269  36
     }
 270  
 }

This report is generated by jcoverage, Maven and Maven JCoverage Plugin.