001    package com.softnetConsult.utils.exceptions;
002    
003    /**
004     * A Throwable Bug (Error) that should be thrown to report that an unexpected case within a
005     * switch statement cas been encountered. This class exists to faciliate brievity
006     * and expressiveness of the source code.
007     * 
008     * <p style="font-size:smaller;">This product includes software developed by the
009     *    <strong>SoftNet-Consult Java Utility Library</strong> project and its contributors.<br />
010     *    (<a href="http://java-tools.sourceforge.net" target="_blank">http://java-tools.sourceforge.net</a>)<br />
011     *    Copyright (c) 2007-2008 SoftNet-Consult.<br />
012     *    Copyright (c) 2007-2008 G. Paperin.<br />
013     *    All rights reserved.
014     * </p>
015     * <p style="font-size:smaller;">File: UnexpectedSwitchCase.java<br />
016     *    Library API version: {@value com.softnetConsult.utils.APIProperties#apiVersion}<br />
017     *    Java compliance version: {@value com.softnetConsult.utils.APIProperties#javaComplianceVersion}
018     * </p>
019     * <p style="font-size:smaller;">Redistribution and use in source and binary forms, with or
020     *    without modification, are permitted provided that the following terms and conditions are met:
021     * </p>
022     * <p style="font-size:smaller;">1. Redistributions of source code must retain the above
023     *    acknowledgement of the SoftNet-Consult Java Utility Library project, the above copyright
024     *    notice, this list of conditions and the following disclaimer.<br />
025     *    2. Redistributions in binary form must reproduce the above acknowledgement of the
026     *    SoftNet-Consult Java Utility Library project, the above copyright notice, this list of
027     *    conditions and the following disclaimer in the documentation and/or other materials
028     *    provided with the distribution.<br />
029     *    3. All advertising materials mentioning features or use of this software or any derived
030     *    software must display the following acknowledgement:<br />
031     *    <em>This product includes software developed by the SoftNet-Consult Java Utility Library
032     *    project and its contributors.</em>
033     * </p>
034     * <p style="font-size:smaller;">THIS SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY
035     *    OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
036     *    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND  NONINFRINGEMENT. IN NO EVENT SHALL
037     *    THE AUTHORS, CONTRIBUTORS OR COPYRIGHT  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
038     *    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  FROM, OUT OF OR
039     *    IN CONNECTION WITH THE SOFTWARE OR THE USE OR  OTHER DEALINGS IN THE SOFTWARE.
040     * </p> 
041     * @author Greg Paperin (<a href="http://www.paperin.org" target="_blank">http://www.paperin.org</a>)
042     * @version {@value com.softnetConsult.utils.APIProperties#apiVersion}
043     *
044     */
045    public class UnexpectedSwitchCase extends Bug {
046    
047    
048    
049    //  /**
050    //   * Constructs a new UnexpectedSwitchCase-Bug that indicates that an unexpected
051    //   * case was encountered within a switch statement and provides the specified
052    //   * message as an explanation.
053    //   * 
054    //   * @param message Explanation message.
055    //   */
056    //  public UnexpectedSwitchCase(String message) {
057    //      super((null == message || 0 == message.trim().length()) ? "No informaion specified" : message);
058    //  }
059    
060    
061    /**
062     * Constructs a new UnexpectedSwitchCase-Bug that indicates that an unexpected
063     * case was encountered within a switch statement that forks on a variable of
064     * type {@code byte}.
065     * 
066     * @param caseConstant The unexpected switch case that was encountered.
067     */
068    public UnexpectedSwitchCase(byte caseConstant) {
069            super("Unexpected switch case constant of type byte: " + caseConstant);
070    }
071    
072    /**
073     * Constructs a new UnexpectedSwitchCase-Bug that indicates that an unexpected
074     * case was encountered within a switch statement that forks on a variable of
075     * type {@code char}.
076     * 
077     * @param caseConstant The unexpected switch case that was encountered.
078     */
079    public UnexpectedSwitchCase(char caseConstant) {
080            super("Unexpected switch case constant of type char: " + caseConstant);
081    }
082    
083    /**
084     * Constructs a new UnexpectedSwitchCase-Bug that indicates that an unexpected
085     * case was encountered within a switch statement that forks on a variable of
086     * type {@code short}.
087     * 
088     * @param caseConstant The unexpected switch case that was encountered.
089     */
090    public UnexpectedSwitchCase(short caseConstant) {
091            super("Unexpected switch case constant of type short: " + caseConstant);
092    }
093    
094    /**
095     * Constructs a new UnexpectedSwitchCase-Bug that indicates that an unexpected
096     * case was encountered within a switch statement that forks on a variable of
097     * type {@code int}.
098     * 
099     * @param caseConstant The unexpected switch case that was encountered.
100     */
101    public UnexpectedSwitchCase(int caseConstant) {
102            super("Unexpected switch case constant of type int: " + caseConstant);
103    }
104    
105    /**
106     * Constructs a new UnexpectedSwitchCase-Bug that indicates that an unexpected
107     * case was encountered within a switch statement that forks on a variable of
108     * type {@code Byte}.
109     * 
110     * @param caseConstant The unexpected switch case that was encountered.
111     */
112    public UnexpectedSwitchCase(Byte caseConstant) {
113            super("Unexpected switch case constant of wrapper type Byte: " + caseConstant);
114    }
115    
116    /**
117     * Constructs a new UnexpectedSwitchCase-Bug that indicates that an unexpected
118     * case was encountered within a switch statement that forks on a variable of
119     * type {@code Character}.
120     * 
121     * @param caseConstant The unexpected switch case that was encountered.
122     */
123    public UnexpectedSwitchCase(Character caseConstant) {
124            super("Unexpected switch case constant of wrapper type Character: " + caseConstant);
125    }
126    
127    /**
128     * Constructs a new UnexpectedSwitchCase-Bug that indicates that an unexpected
129     * case was encountered within a switch statement that forks on a variable of
130     * type {@code Short}.
131     * 
132     * @param caseConstant The unexpected switch case that was encountered.
133     */
134    public UnexpectedSwitchCase(Short caseConstant) {
135            super("Unexpected switch case constant of wrapper type Short: " + caseConstant);
136    }
137    
138    /**
139     * Constructs a new UnexpectedSwitchCase-Bug that indicates that an unexpected
140     * case was encountered within a switch statement that forks on a variable of
141     * type {@code Integer}.
142     * 
143     * @param caseConstant The unexpected switch case that was encountered.
144     */
145    public UnexpectedSwitchCase(Integer caseConstant) {
146            super("Unexpected switch case constant of wrapper type Integer: " + caseConstant);
147    }
148    
149    /**
150     * Constructs a new UnexpectedSwitchCase-Bug that indicates that an unexpected
151     * case was encountered within a switch statement that forks on a variable of
152     * an Enum-type {@code E}.
153     * @param <E> The {@code Enum}-type of the variable on which the concerned switch
154     * statement was forked.
155     * @param caseConstant The unexpected switch case that was encountered.
156     */
157    public <E extends Enum<E>> UnexpectedSwitchCase(E caseConstant) {
158            super("Unexpected switch case constant of enum type "
159                    + caseConstant.getClass().getName() + ": " + caseConstant);
160    }
161    
162    } // public class UnexpectedSwitchCase