001/*
002 * ============================================================================
003 *  Copyright © 2002-2026 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.annotation;
019
020import static java.lang.annotation.ElementType.METHOD;
021import static java.lang.annotation.RetentionPolicy.SOURCE;
022import static org.apiguardian.api.API.Status.STABLE;
023
024import java.lang.annotation.Documented;
025import java.lang.annotation.Retention;
026import java.lang.annotation.Target;
027
028import org.apiguardian.api.API;
029
030/**
031 *  <p>{@summary The marker annotation for methods that are meant to be
032 *  overwritten in child classes.}</p>
033 *
034 *  @extauthor Thomas Thrien - thomas.thrien@tquadrat.org
035 *  @version $Id: MountPoint.java 1259 2026-06-05 20:29:42Z tquadrat $
036 *  @since 0.1.0
037 */
038@ClassVersion( sourceVersion = "$Id: MountPoint.java 1259 2026-06-05 20:29:42Z tquadrat $" )
039@API( status = STABLE, since = "0.1.0" )
040@Documented
041@Retention( SOURCE )
042@Target( METHOD )
043public @interface MountPoint
044{
045    /**
046     *  Optionally provides a short description on how to use this mount-point.
047     *
048     *  @return The description of the mount point.
049     */
050    String value() default "";
051
052    /**
053     *  Flag that indicates whether an overriding implementation should call
054     *  the {@code super} implementation.
055     *
056     *  @return {@code true} if the {@code super} implementation should be
057     *      called, {@code false} (the default) if not.
058     */
059    @API( status = STABLE, since = "0.25.12" )
060    boolean shouldCallSuper() default false;
061}
062//  @interface MountPoint
063
064/*
065 *  End of File
066 */