001    /*
002     * SonarQube, open source software quality management tool.
003     * Copyright (C) 2008-2014 SonarSource
004     * mailto:contact AT sonarsource DOT com
005     *
006     * SonarQube is free software; you can redistribute it and/or
007     * modify it under the terms of the GNU Lesser General Public
008     * License as published by the Free Software Foundation; either
009     * version 3 of the License, or (at your option) any later version.
010     *
011     * SonarQube is distributed in the hope that it will be useful,
012     * but WITHOUT ANY WARRANTY; without even the implied warranty of
013     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
014     * Lesser General Public License for more details.
015     *
016     * You should have received a copy of the GNU Lesser General Public License
017     * along with this program; if not, write to the Free Software Foundation,
018     * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
019     */
020    package org.sonar.api.i18n;
021    
022    import org.sonar.api.BatchComponent;
023    import org.sonar.api.ServerComponent;
024    import org.sonar.api.rules.Rule;
025    
026    import javax.annotation.CheckForNull;
027    
028    import java.util.Locale;
029    
030    /**
031     * {@link I18n}-companion component that provides translation facilities for rule names, descriptions and parameter names.
032     * 
033     * @since 3.2
034     * @deprecated in 4.1. Rules are not localized anymore. See http://jira.codehaus.org/browse/SONAR-4885
035     */
036    @Deprecated
037    public interface RuleI18n extends ServerComponent, BatchComponent {
038    
039      /**
040       * Returns the localized name of the rule identified by its repository key and rule key.
041       * <br>
042       * If the name is not found in the given locale, then the default name is returned (the English one).
043       * This method could return null if no default name found. This is the cause for instance the copies rules.
044       *
045       * @param repositoryKey the repository key
046       * @param ruleKey the rule key
047       * @param locale not used
048       * @return the translated name of the rule, or the default English one if the given locale is not supported, or null
049       * @deprecated since 4.1. Rules are not localized anymore. See http://jira.codehaus.org/browse/SONAR-4885
050       */
051      @Deprecated
052      @CheckForNull
053      String getName(String repositoryKey, String ruleKey, Locale locale);
054    
055      /**
056       * Returns the name of the rule identified by its repository key and rule key.
057       * <br>
058       * This method could return null if no default name found. This is the cause for instance the copies rules.
059       *
060       * @param repositoryKey the repository key
061       * @param ruleKey the rule key
062       * @return the nullable name of the rule
063       * @since 4.1
064       */
065      @CheckForNull
066      String getName(String repositoryKey, String ruleKey);
067    
068      /**
069       * Returns the localized name or the name of the rule.
070       * <br>
071       * If the name is not found in the given locale, then the default name is returned (the English one).
072       * It the default name is not found, then the rule name is returned.
073       *
074       * @param rule the rule
075       * @param locale the locale to translate into
076       * @return the translated name of the rule, or the default English one if the given locale is not supported, or the rule name.
077       * @deprecated since 4.1. Rules are not localized anymore. See http://jira.codehaus.org/browse/SONAR-4885
078       */
079      @Deprecated
080      @CheckForNull
081      String getName(Rule rule, Locale locale);
082    
083      /**
084       * Returns the name of the rule.
085       * <br>
086       * It the default name is not found, then the rule name is returned.
087       *
088       * @param rule the rule
089       * @return the nullable name of the rule
090       * @since 4.1
091       */
092      @CheckForNull
093      String getName(Rule rule);
094    
095      /**
096       * Returns the localized description of the rule identified by its repository key and rule key.
097       * <br>
098       * If the description is not found in the given locale, then the default description is returned (the English one).
099       * As a rule must have a description (this is a constraint in Sonar), this method never returns null.
100       *
101       * @param repositoryKey the repository key
102       * @param ruleKey the rule key
103       * @param locale  the locale to translate into
104       * @return the translated description of the rule, or the default English one if the given locale is not supported
105       * @deprecated since 4.1. Rules are not localized anymore. See http://jira.codehaus.org/browse/SONAR-4885
106       */
107      @Deprecated
108      String getDescription(String repositoryKey, String ruleKey, Locale locale);
109    
110      /**
111       * Returns the description of the rule identified by its repository key and rule key.
112       * <br>
113       * As a rule must have a description (this is a constraint in SonarQube), this method never returns null.
114       *
115       * @param repositoryKey the repository key
116       * @param ruleKey the rule key
117       * @return the description of the rule
118       * @since 4.1
119       */
120      String getDescription(String repositoryKey, String ruleKey);
121    
122      /**
123       * Returns the localized name of the rule parameter identified by the rules's key and repository key, and by the parameter key.
124       * <br>
125       * If the name is not found in the given locale, then the English translation is searched and return if found. Otherwise,
126       * this method returns null (= if no translation can be found).
127       *
128       * @param repositoryKey the repository key
129       * @param ruleKey the rule key
130       * @param paramKey the parameter key
131       * @param locale the locale to translate into
132       * @return the translated name of the rule parameter, or the default English one if the given locale is not supported, or null if
133       *         no translation can be found.
134       * @deprecated since 4.1. Rules are not localized anymore. See http://jira.codehaus.org/browse/SONAR-4885
135       */
136      @Deprecated
137      @CheckForNull
138      String getParamDescription(String repositoryKey, String ruleKey, String paramKey, Locale locale);
139    
140      /**
141       * Returns the name of the rule parameter identified by the rules's key and repository key, and by the parameter key.
142       *
143       * @param repositoryKey the repository key
144       * @param ruleKey the rule key
145       * @param paramKey the parameter key
146       * @return the nullable name of the rule parameter
147       * @since 4.1
148       */
149      @CheckForNull
150      String getParamDescription(String repositoryKey, String ruleKey, String paramKey);
151    
152    }