Cal10nError xref

View Javadoc

    1   /*
    2    * Copyright (c) 2009 QOS.ch All rights reserved.
    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  package ch.qos.cal10n.verifier;
    23
    24  import java.util.Locale;
    25
    26  /**
    27   *
    28   * Aggregates various parameters of a verification error in a single place
    29   * (class).
    30   *
    31   * @author Ceki G&uuml;lc&uuml;
    32   */
    33  public class Cal10nError {
    34
    35    enum ErrorType {
    36      // MISSING_LOCALE_NAMES_ANNOTATION
    37
    38      MISSING_BN_ANNOTATION, FAILED_TO_FIND_RB, EMPTY_RB, EMPTY_ENUM, ABSENT_IN_RB, ABSENT_IN_ENUM;
    39    }
    40
    41    final ErrorType errorType;
    42    final String key;
    43    final Locale locale;
    44    final Class<?> enumClass;
    45    final String enumClassName;
    46    final String baseName;
    47
    48    Cal10nError(ErrorType errorType, String key, Class<?> enumClass,
    49        Locale locale, String baseName) {
    50      this.errorType = errorType;
    51      this.key = key;
    52      this.enumClass = enumClass;
    53      this.enumClassName = enumClass.getName();
    54      this.locale = locale;
    55      this.baseName = baseName;
    56    }
    57
    58    public ErrorType getErrorType() {
    59      return errorType;
    60    }
    61
    62    public String getKey() {
    63      return key;
    64    }
    65
    66    public Locale getLocale() {
    67      return locale;
    68    }
    69
    70    public Class<?> getEnumClass() {
    71      return enumClass;
    72    }
    73
    74    @Override
    75    public String toString() {
    76      switch (errorType) {
    77      case MISSING_BN_ANNOTATION:
    78        return "Missing @BaseName annotation in enum type ["
    79            + enumClassName + "]";
    80      case FAILED_TO_FIND_RB:
    81        return "Failed to locate resource bundle [" + baseName
    82            + "] for locale [" + locale + "] for enum type [" + enumClassName
    83            + "]";
    84      case EMPTY_RB:
    85        return "Empty resource bundle named [" + baseName
    86            + "] for locale [" + locale + "]";
    87      case EMPTY_ENUM:
    88        return "Empty enum type [" + enumClassName + "]";
    89      case ABSENT_IN_ENUM:
    90        return "Key [" + key + "] present in resource bundle named ["
    91            + baseName + "] for locale [" + locale
    92            + "] but absent in enum type [" + enumClassName + "]";
    93      case ABSENT_IN_RB:
    94        return "Key [" + key + "] present in enum type [" + enumClassName
    95            + "] but absent in resource bundle named [" + baseName
    96            + "] for locale [" + locale + "]";
    97      default:
    98        throw new IllegalStateException("Impossible to reach here");
    99      }
    100   }
    101 }