001package org.gwtbootstrap3.client.ui.form.validator;
002
003/*
004 * #%L
005 * GwtBootstrap3
006 * %%
007 * Copyright (C) 2015 GwtBootstrap3
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 * 
013 *      http://www.apache.org/licenses/LICENSE-2.0
014 * 
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023import java.util.MissingResourceException;
024
025import com.google.gwt.core.client.GWT;
026
027/**
028 * Default implementation of the validator message mixin. This can be replaced with your own version by using
029 * a "replace-with" statment in the gwt module file.
030 * 
031 * Example:
032 * 
033 * <pre>
034 * {@code
035 * <replace-with class="...CustomValidatorMessageMixin">
036 *     <when-type-is class="org.gwtbootstrap3.client.ui.form.validator.ValidatorMessageMixin" />
037 * </replace-with>
038 * }
039 * </pre>
040 * 
041 * @author Steven Jardine
042 */
043public class DefaultValidatorMessageMixin implements ValidatorMessageMixin {
044
045    protected ValidationMessages messages = GWT.create(ValidationMessages.class);
046
047    /** {@inheritDoc} */
048    public String lookup(String key) {
049        try {
050            // Replace "." with "_" in the key.
051            return key == null ? null : messages.getString(key.replace(".", "_"));
052        } catch (MissingResourceException e) {
053            return null;
054        }
055    }
056
057    /** {@inheritDoc} */
058    @Override
059    public String lookup(String key, Object[] msgValues) {
060        String msg = lookup(key);
061        if (msg != null) {
062            msg = MessageFormat.format(msg, msgValues);
063        }
064        return msg;
065    }
066
067}