KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > google > inject > ConstantConversionException


1 /**
2  * Copyright (C) 2006 Google Inc.
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
17 package com.google.inject;
18
19 import java.lang.reflect.Member JavaDoc;
20
21 /**
22  * Thrown when a constant type conversion error occurs.
23  *
24  * @author crazybob@google.com (Bob Lee)
25  */

26 class ConstantConversionException extends Exception JavaDoc {
27
28   ConstantConversionException(Member JavaDoc member, Key<?> key, String JavaDoc value,
29       String JavaDoc reason) {
30     super(createMessage(value, key, member, reason));
31   }
32
33   ConstantConversionException(Member JavaDoc member, Key<?> key, String JavaDoc value,
34       Throwable JavaDoc reason) {
35     this(member, key, value, reason.toString());
36   }
37
38   static String JavaDoc createMessage(String JavaDoc value, Key<?> key, Member JavaDoc member,
39       String JavaDoc reason) {
40     String JavaDoc annotationMessage = key.hasAnnotationType()
41         ? " annotated with " + key.getAnnotationName()
42         : "";
43     
44     return member == null
45         ? "Error converting '" + value + "' to "
46             + key.getRawType().getSimpleName()
47             + " while getting binding value" + annotationMessage
48             + ". Reason: " + reason
49         : "Error converting '" + value + "' to "
50             + key.getRawType().getSimpleName() + " while injecting "
51             + member.getName() + " with binding value" + annotationMessage
52             + " required by " + member.getDeclaringClass().getSimpleName()
53             + ". Reason: " + reason;
54   }
55 }
56
Popular Tags