001/*
002 * ============================================================================
003 *  Copyright © 2002-2021 by Thomas Thrien.
004 *  All Rights Reserved.
005 * ============================================================================
006 *  Licensed to the public under the agreements of the GNU Lesser General Public
007 *  License, version 3.0 (the "License"). You may obtain a copy of the License at
008 *
009 *       http://www.gnu.org/licenses/lgpl.html
010 *
011 *  Unless required by applicable law or agreed to in writing, software
012 *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
013 *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
014 *  License for the specific language governing permissions and limitations
015 *  under the License.
016 */
017
018package org.tquadrat.foundation.i18n;
019
020import static java.lang.annotation.ElementType.MODULE;
021import static java.lang.annotation.ElementType.PACKAGE;
022import static java.lang.annotation.ElementType.TYPE;
023import static java.lang.annotation.RetentionPolicy.SOURCE;
024import static org.apiguardian.api.API.Status.STABLE;
025
026import java.lang.annotation.Documented;
027import java.lang.annotation.Retention;
028import java.lang.annotation.Target;
029
030import org.apiguardian.api.API;
031import org.tquadrat.foundation.annotation.ClassVersion;
032
033/**
034 *  <p>{@summary This optional annotation provides the location for the file
035 *  {@value I18nUtil#ADDITIONAL_TEXT_FILE}
036 *  if that is not stored at the default locations}, usually either the root of
037 *  the source tree or the location that is provided through the annotation
038 *  processor option
039 *  {@value I18nUtil#ADDITIONAL_TEXT_LOCATION}.</p>
040 *  <p>The annotation is mandatory if the respective project does not use any
041 *  of the annotations</p>
042 *  <ul>
043 *      <li>{@link BaseBundleName &#64;BaseBundleName}</li>
044 *      <li>{@link MessagePrefix &#64;MessagePrefix}</li>
045 *      <li>{@link Message &#64;Message},
046 *      {@link Text &#64;Text}
047 *      or
048 *      {@link Texts &#64;Texts}</li>
049 *  </ul>
050 *  <p>but defines texts or message in a
051 *  {@value I18nUtil#ADDITIONAL_TEXT_FILE}
052 *  file.</p>
053 *
054 *  @extauthor Thomas Thrien - thomas.thrien@tquadrat.org
055 *  @version $Id: UseAdditionalTexts.java 984 2022-01-13 00:46:27Z tquadrat $
056 *  @since 0.1.0
057 *
058 *  @see I18nUtil#ADDITIONAL_TEXT_LOCATION
059 *  @see I18nUtil#ADDITIONAL_TEXT_FILE
060 */
061@Documented
062@Retention( SOURCE )
063@Target( {TYPE, PACKAGE, MODULE} )
064@ClassVersion( sourceVersion = "$Id: UseAdditionalTexts.java 984 2022-01-13 00:46:27Z tquadrat $" )
065@API( status = STABLE, since = "0.1.0" )
066public @interface UseAdditionalTexts
067{
068        /*------------*\
069    ====** Attributes **=======================================================
070        \*------------*/
071    /**
072     *  The location for the
073     *  {@value I18nUtil#ADDITIONAL_TEXT_FILE}
074     *  file.
075     *
076     *  @return The name for the folder that holdes the file with the
077     *      additional texts.
078     */
079    public String location() default "";
080}
081//  @interface UseAdditionalTexts
082
083/*
084 *  End of File
085 */