Add constructor to GwtMessageInterpolator that accepts a
UserValidationMessagesResolver so applications can use more that one
MessageInterploator.
Review at http://gwt-code-reviews.appspot.com/1515803
Review by: rchandia@google.com
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@10514 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/validation/client/BaseMessageInterpolator.java b/user/src/com/google/gwt/validation/client/BaseMessageInterpolator.java
index 2bd7100..286d11f 100644
--- a/user/src/com/google/gwt/validation/client/BaseMessageInterpolator.java
+++ b/user/src/com/google/gwt/validation/client/BaseMessageInterpolator.java
@@ -36,7 +36,7 @@
/**
* Implementation of {@link Context}.
*/
- public static class ContextImpl implements Context {
+ public static final class ContextImpl implements Context {
private final ConstraintDescriptor<?> constraintDescriptor;
private final Object value;
@@ -55,7 +55,7 @@
}
}
- // local version because guava is included.
+ // local version because guava is not included.
private static interface Function<F, T> {
T apply(F from);
}
@@ -98,15 +98,18 @@
/**
* Replaces keys using the Validation User custom properties.
*/
- private final Function<String, String> userReplacer =
- createReplacer((ValidationMessageResolver)
- GWT.create(UserValidationMessagesResolver.class));
+ private final Function<String, String> userReplacer;
- public String interpolate(String messageTemplate, Context context) {
+ protected BaseMessageInterpolator(
+ UserValidationMessagesResolver userValidationMessagesResolver) {
+ userReplacer = createReplacer(userValidationMessagesResolver);
+ }
+
+ public final String interpolate(String messageTemplate, Context context) {
return gwtInterpolate(messageTemplate, context, null);
}
- protected String gwtInterpolate(String message, Context context,
+ protected final String gwtInterpolate(String message, Context context,
GwtLocale locale) {
// see Section 4.3.1.1
String resolvedMessage = message;
@@ -140,7 +143,7 @@
return resolvedMessage;
}
- protected String replaceParameters(String message,
+ protected final String replaceParameters(String message,
Function<String, String> replacer) {
StringBuffer sb = new StringBuffer();
int index = 0;
@@ -159,7 +162,7 @@
return sb.toString();
}
- private String removeCurlyBrace(String parameter) {
+ private final String removeCurlyBrace(String parameter) {
return parameter.substring(1, parameter.length() - 1);
}
}
diff --git a/user/src/com/google/gwt/validation/client/GwtMessageInterpolator.java b/user/src/com/google/gwt/validation/client/GwtMessageInterpolator.java
index ce3717d..7bd6bd2 100644
--- a/user/src/com/google/gwt/validation/client/GwtMessageInterpolator.java
+++ b/user/src/com/google/gwt/validation/client/GwtMessageInterpolator.java
@@ -15,6 +15,8 @@
*/
package com.google.gwt.validation.client;
+import com.google.gwt.core.client.GWT;
+
import java.util.Locale;
/**
@@ -26,8 +28,31 @@
public class GwtMessageInterpolator extends BaseMessageInterpolator {
// This class only has the parts the need to overridden for GWT
- public String interpolate(String messageTemplate, Context context,
+ /**
+ * Creates a {@link javax.validation.MessageInterpolator MessageInterpolator}
+ * MessageInterpolator that uses the default
+ * {@link UserValidationMessagesResolver}.
+ */
+ public GwtMessageInterpolator() {
+ this((UserValidationMessagesResolver) GWT
+ .create(UserValidationMessagesResolver.class));
+ }
+
+ /**
+ * Creates a {@link javax.validation.MessageInterpolator MessageInterpolator}
+ * using the supplie{@link UserValidationMessagesResolver}.
+ *
+ * @param userValidationMessagesResolver
+ */
+ public GwtMessageInterpolator(
+ UserValidationMessagesResolver userValidationMessagesResolver) {
+ super(userValidationMessagesResolver);
+ }
+
+ public final String interpolate(String messageTemplate, Context context,
Locale locale) {
+ // The super sourced GWT version of this calls
+ // gwtInterpolate
return messageTemplate;
}
}
diff --git a/user/src/com/google/gwt/validation/super/com/google/gwt/validation/client/GwtMessageInterpolator.java b/user/src/com/google/gwt/validation/super/com/google/gwt/validation/client/GwtMessageInterpolator.java
index f180b17..3460fad 100644
--- a/user/src/com/google/gwt/validation/super/com/google/gwt/validation/client/GwtMessageInterpolator.java
+++ b/user/src/com/google/gwt/validation/super/com/google/gwt/validation/client/GwtMessageInterpolator.java
@@ -15,17 +15,42 @@
*/
package com.google.gwt.validation.client;
+import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.shared.GwtLocale;
import javax.validation.MessageInterpolator.Context;
/**
+ * <strong>EXPERIMENTAL</strong> and subject to change. Do not use this in
+ * production code.
+ * <p>
* Simple GWT {@link javax.validation.MessageInterpolator}.
*/
public class GwtMessageInterpolator extends BaseMessageInterpolator {
// This class only has the parts the need to overridden for GWT
- public String interpolate(String messageTemplate, Context context,
+ /**
+ * Creates a {@link javax.validation.MessageInterpolator MessageInterpolator}
+ * MessageInterpolator that uses the default
+ * {@link UserValidationMessagesResolver}.
+ */
+ public GwtMessageInterpolator() {
+ this((UserValidationMessagesResolver) GWT
+ .create(UserValidationMessagesResolver.class));
+ }
+
+ /**
+ * Creates a {@link javax.validation.MessageInterpolator MessageInterpolator}
+ * using the supplie{@link UserValidationMessagesResolver}.
+ *
+ * @param userValidationMessagesResolver
+ */
+ public GwtMessageInterpolator(
+ UserValidationMessagesResolver userValidationMessagesResolver) {
+ super(userValidationMessagesResolver);
+ }
+
+ public final String interpolate(String messageTemplate, Context context,
GwtLocale locale) {
return gwtInterpolate(messageTemplate,context,locale);
}