001    /*
002     * Copyright (c) 1998-2014 ChemAxon Ltd. All Rights Reserved.
003     *
004     * This software is the confidential and proprietary information of
005     * ChemAxon. You shall not disclose such Confidential Information
006     * and shall use it only in accordance with the terms of the agreements
007     * you entered into with ChemAxon.
008     *
009     */
010    
011    package com.chemaxon.apidiscovery.annotations;
012    
013    import com.chemaxon.common.annotations.PublicAPI;
014    import com.google.common.annotations.Beta;
015    import java.lang.annotation.ElementType;
016    import java.lang.annotation.Retention;
017    import java.lang.annotation.RetentionPolicy;
018    import java.lang.annotation.Target;
019    
020    /**
021     * The annotated element has a description contained in this annotation.
022     *
023     * <p>Marks types/enum instances (typically parameter objects) which are meant to expose to the
024     * user (through reflection based dynamic API discovery) <b>to choose from</b> in a specific
025     * situation</p>
026     *
027     * <p>Please note that this annotation is marked with @Beta annotation, so it can be subject of incompatible change or
028     * remove in later releases.</p>
029     *
030     * @author Gabor Imre
031     */
032    @Retention(RetentionPolicy.RUNTIME)
033    @Target({ ElementType.FIELD, ElementType.TYPE })
034    @Beta
035    @PublicAPI
036    public @interface Description {
037    
038        /**
039         * Short name of the descripted element.
040         */
041        String shortName();
042    
043        /**
044         * Element name.
045         */
046        String name();
047    
048        /**
049         * Element description description.
050         */
051        String description();
052    }