001/*
002 * #%L
003 * GwtBootstrap3
004 * %%
005 * Copyright (C) 2015 GwtBootstrap3
006 * %%
007 * Licensed under the Apache License, Version 2.0 (the "License");
008 * you may not use this file except in compliance with the License.
009 * You may obtain a copy of the License at
010 * 
011 *      http://www.apache.org/licenses/LICENSE-2.0
012 * 
013 * Unless required by applicable law or agreed to in writing, software
014 * distributed under the License is distributed on an "AS IS" BASIS,
015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016 * See the License for the specific language governing permissions and
017 * limitations under the License.
018 * #L%
019 */
020package gwt.material.design.client.base.validator;
021
022/**
023 * A very simple message format implementation.
024 *
025 * @author Steven Jardine
026 */
027public class MessageFormat {
028
029    /**
030     * Format the message using the pattern and the arguments.
031     *
032     * @param pattern   the pattern in the format of "{1} this is a {2}"
033     * @param arguments the arguments.
034     * @return the formatted result.
035     */
036    public static String format(String pattern, Object... arguments) {
037        String msg = pattern;
038        if (arguments != null) {
039            for (int index = 0; index < arguments.length; index++) {
040                msg = msg.replaceAll("\\{" + (index + 1) + "\\}", String.valueOf(arguments[index]));
041            }
042        }
043        return msg;
044    }
045}