001 // Copyright 2006, 2007 The Apache Software Foundation
002 //
003 // Licensed under the Apache License, Version 2.0 (the "License");
004 // you may not use this file except in compliance with the License.
005 // You may obtain a copy of the License at
006 //
007 // http://www.apache.org/licenses/LICENSE-2.0
008 //
009 // Unless required by applicable law or agreed to in writing, software
010 // distributed under the License is distributed on an "AS IS" BASIS,
011 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012 // See the License for the specific language governing permissions and
013 // limitations under the License.
014
015 package org.apache.tapestry5.ioc.internal.services;
016
017 import javassist.CtClass;
018 import org.apache.tapestry5.ioc.Messages;
019 import org.apache.tapestry5.ioc.internal.util.MessagesImpl;
020 import org.apache.tapestry5.ioc.services.ClassFabUtils;
021 import org.apache.tapestry5.ioc.services.Coercion;
022 import org.apache.tapestry5.ioc.services.MethodSignature;
023 import org.apache.tapestry5.ioc.services.ThreadCleanupListener;
024
025 public class ServiceMessages
026 {
027 private final static Messages MESSAGES = MessagesImpl.forClass(ServiceMessages.class);
028
029 private ServiceMessages()
030 {
031 }
032
033 public static String unableToAddMethod(MethodSignature signature, CtClass ctClass, Throwable cause)
034 {
035 return MESSAGES.format("unable-to-add-method", signature, ctClass.getName(), cause);
036 }
037
038 public static String unableToAddConstructor(CtClass ctClass, Throwable cause)
039 {
040 return MESSAGES.format("unable-to-add-constructor", ctClass.getName(), cause);
041 }
042
043 public static String unableToAddField(String fieldName, CtClass ctClass, Throwable cause)
044 {
045 return MESSAGES.format("unable-to-add-field", fieldName, ctClass.getName(), cause);
046 }
047
048 public static String unableToCreateClass(String className, Class superClass, Throwable cause)
049 {
050 return MESSAGES.format("unable-to-create-class", className, superClass.getName(), cause);
051 }
052
053 public static String unableToLookupClass(String className, Throwable cause)
054 {
055 return MESSAGES.format("unable-to-lookup-class", className, cause);
056 }
057
058 public static String unableToWriteClass(CtClass ctClass, Throwable cause)
059 {
060 return MESSAGES.format("unable-to-write-class", ctClass.getName(), cause);
061 }
062
063 public static String duplicateMethodInClass(MethodSignature ms, ClassFabImpl fab)
064 {
065 return MESSAGES.format("duplicate-method-in-class", ms, fab.getName());
066 }
067
068 public static String loggingInterceptor(String serviceId, Class serviceInterface)
069 {
070 return MESSAGES.format("logging-interceptor", serviceId, serviceInterface.getName());
071 }
072
073 public static String threadCleanupError(ThreadCleanupListener listener, Throwable cause)
074 {
075 return MESSAGES.format("thread-cleanup-error", listener, cause);
076 }
077
078 public static String noSuchProperty(Class clazz, String propertyName)
079 {
080 return MESSAGES.format("no-such-property", clazz.getName(), propertyName);
081 }
082
083 public static String readNotSupported(Object instance, String propertyName)
084 {
085 return MESSAGES.format("read-not-supported", instance.getClass().getName(), propertyName);
086 }
087
088 public static String writeNotSupported(Object instance, String propertyName)
089 {
090 return MESSAGES.format("write-not-supported", instance.getClass().getName(), propertyName);
091 }
092
093 public static String readFailure(String propertyName, Object instance, Throwable cause)
094 {
095 return MESSAGES.format("read-failure", propertyName, instance, cause);
096 }
097
098 public static String writeFailure(String propertyName, Object instance, Throwable cause)
099 {
100 return MESSAGES.format("write-failure", propertyName, instance, cause);
101 }
102
103 public static String propertyTypeMismatch(String propertyName, Class sourceClass, Class propertyType,
104 Class expectedType)
105 {
106 return MESSAGES.format("property-type-mismatch", propertyName, sourceClass.getName(), propertyType.getName(),
107 expectedType.getName());
108 }
109
110 public static String extraFilterMethod(MethodSignature sig, Class filterInterface, Class serviceInterface)
111 {
112 return MESSAGES.format("extra-filter-method", sig, filterInterface.getName(), serviceInterface.getName());
113 }
114
115 public static String unmatchedServiceMethod(MethodSignature sig, Class filterInterface)
116 {
117 return MESSAGES.format("unmatched-service-method", sig, filterInterface.getName());
118 }
119
120 public static String unknownObjectProvider(String prefix, String reference)
121 {
122 return MESSAGES.format("unknown-object-provider", prefix, reference);
123 }
124
125 public static String shutdownListenerError(Object listener, Throwable cause)
126 {
127 return MESSAGES.format("shutdown-listener-error", listener, cause);
128 }
129
130 public static String noCoercionFound(Class sourceType, Class targetType, String coercions)
131 {
132 return MESSAGES.format("no-coercion-found", sourceType.getName(), targetType.getName(), coercions);
133 }
134
135 public static String recursiveSymbol(String symbolName, String path)
136 {
137 return MESSAGES.format("recursive-symbol", symbolName, path);
138 }
139
140 public static String symbolUndefined(String symbolName)
141 {
142 return MESSAGES.format("symbol-undefined", symbolName);
143 }
144
145 public static String symbolUndefinedInPath(String symbolName, String path)
146 {
147 return MESSAGES.format("symbol-undefined-in-path", symbolName, path);
148 }
149
150 public static String missingSymbolCloseBrace(String input)
151 {
152 return MESSAGES.format("missing-symbol-close-brace", input);
153 }
154
155 public static String missingSymbolCloseBraceInPath(String input, String path)
156 {
157 return MESSAGES.format("missing-symbol-close-brace-in-path", input, path);
158 }
159
160 public static String failedCoercion(Object input, Class targetType, Coercion coercion, Throwable cause)
161 {
162 return MESSAGES.format("failed-coercion", String.valueOf(input), ClassFabUtils.toJavaClassName(targetType),
163 coercion, cause);
164 }
165
166 public static String registryShutdown(String serviceId)
167 {
168 return MESSAGES.format("registry-shutdown", serviceId);
169 }
170
171 public static String serviceBuildFailure(String serviceId, Throwable cause)
172 {
173 return MESSAGES.format("service-build-failure", serviceId, cause);
174 }
175
176 public static String startupFailure(Throwable cause)
177 {
178 return MESSAGES.format("startup-failure", cause);
179 }
180 }