001/*
002 * (C) Copyright 2019 Nuxeo (http://nuxeo.com/) and others.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *     http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 *
016 * Contributors:
017 *     Guillaume Renard
018 */
019package org.nuxeo.ecm.core.api.validation;
020
021import java.util.Locale;
022
023import org.nuxeo.common.utils.i18n.I18NUtils;
024import org.nuxeo.ecm.core.schema.types.constraints.Constraint;
025
026/**
027 * Global validation violation simply handling a message key.
028 *
029 * @since 11.1
030 */
031public class GlobalViolation implements ValidationViolation {
032
033    private static final long serialVersionUID = 1L;
034
035    protected String messageKey;
036
037    public GlobalViolation(String messageKey) {
038        this.messageKey = messageKey;
039    }
040
041    @Override
042    public String getMessageKey() {
043        return messageKey;
044    }
045
046    /**
047     * @return The message if it's found in message bundles, {@link #getMessageKey()} otherwise.
048     */
049    @Override
050    public String getMessage(Locale locale) {
051        Locale computedLocale = locale != null ? locale : Constraint.MESSAGES_DEFAULT_LANG;
052        return I18NUtils.getMessageString(Constraint.MESSAGES_BUNDLE, getMessageKey(), null, computedLocale);
053    }
054
055}