001package ca.uhn.fhir.model.api.annotation;
002
003/*
004 * #%L
005 * HAPI FHIR - Core Library
006 * %%
007 * Copyright (C) 2014 - 2022 Smile CDR, Inc.
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 *
013 *      http://www.apache.org/licenses/LICENSE-2.0
014 *
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023import java.lang.annotation.ElementType;
024import java.lang.annotation.Retention;
025import java.lang.annotation.RetentionPolicy;
026import java.lang.annotation.Target;
027
028/**
029 * Annotation which may be placed on a resource/datatype definition, or a field, or
030 * a search parameter definition in order to provide documentation for that item.
031 */
032@Retention(RetentionPolicy.RUNTIME)
033@Target(value = {ElementType.FIELD, ElementType.TYPE, ElementType.PARAMETER, ElementType.METHOD})
034public @interface Description {
035
036        /**
037         * A description of this method or parameter
038         *
039         * @since 5.4.0
040         */
041        String value() default "";
042
043        /**
044         * Optional short name for this child
045         */
046        String shortDefinition() default "";
047
048        /**
049         * Optional formal definition for this child
050         *
051         * @deprecated Use {@link #value()} instead. Deprecated in 5.4.0.
052         */
053        @Deprecated
054        String formalDefinition() default "";
055
056        /**
057         * May be used to supply example values for this
058         *
059         * @since 5.4.0
060         */
061        String[] example() default {};
062}