NoSuchMessageException.java
01 /*
02  * Copyright 2008-2015 the original author or authors.
03  *
04  * Licensed under the Apache License, Version 2.0 (the "License");
05  * you may not use this file except in compliance with the License.
06  * You may obtain a copy of the License at
07  *
08  *     http://www.apache.org/licenses/LICENSE-2.0
09  *
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 griffon.core.i18n;
17 
18 import javax.annotation.Nonnull;
19 import java.util.Locale;
20 
21 import static griffon.util.GriffonNameUtils.requireNonBlank;
22 import static java.util.Objects.requireNonNull;
23 
24 /**
25  @author Alexander Klein
26  @since 2.0.0
27  */
28 public class NoSuchMessageException extends RuntimeException {
29     private static final long serialVersionUID = -74043113109264466L;
30 
31     private final String key;
32     private final Locale locale;
33 
34     /**
35      * Create a new exception.
36      *
37      @param key    message that could not be resolved for given locale
38      @param locale locale that was used to search for the code within
39      */
40     public NoSuchMessageException(@Nonnull String key, @Nonnull Locale locale) {
41         super("No message found under key '" + requireNonBlank(key, "key""' for locale '" + requireNonNull(locale, "locale""'.");
42         this.key = key;
43         this.locale = locale;
44     }
45 
46     /**
47      * Create a new exception.
48      *
49      @param key key that could not be resolved for given locale
50      */
51     public NoSuchMessageException(@Nonnull String key) {
52         this(key, Locale.getDefault());
53     }
54 
55     /**
56      * Get the key without a valid value
57      *
58      @return The key
59      */
60     @Nonnull
61     public String getKey() {
62         return key;
63     }
64 
65     /**
66      * Get the locale without a valid value
67      *
68      @return The locale
69      */
70     @Nonnull
71     public Locale getLocale() {
72         return locale;
73     }
74 }