001    /*
002     * $Id: DrawSequenceDiagram.java,v 1.6 2014/01/12 18:57:54 oboehm Exp $
003     *
004     * Copyright (c) 2013 by Oliver Boehm
005     *
006     * Licensed under the Apache License, Version 2.0 (the "License");
007     * you may not use this file except in compliance with the License.
008     * You may obtain a copy of the License at
009     *
010     *   http://www.apache.org/licenses/LICENSE-2.0
011     *
012     * Unless required by applicable law or agreed to in writing, software
013     * distributed under the License is distributed on an "AS IS" BASIS,
014     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express orimplied.
015     * See the License for the specific language governing permissions and
016     * limitations under the License.
017     *
018     * (c)reated 06.09.2013 by oliver (ob@oasd.de)
019     */
020    
021    package patterntesting.runtime.annotation;
022    
023    import java.lang.annotation.*;
024    
025    /**
026     * With this annotation you can control the generation of sequence diagrams.
027     * You can put this annotation before a constructor or method.
028     *
029     * @author oliver
030     * @since 1.4 (06.09.2013)
031     * @see IgnoreForSequenceDiagram
032     */
033    @Retention(RetentionPolicy.RUNTIME)
034    @Target({ElementType.CONSTRUCTOR, ElementType.METHOD})
035    public @interface DrawSequenceDiagram {
036    
037        /**
038         * If this value is given a new diagram with this name will be generated.
039         * If no value is given the marked method or constructor will appended to
040         * the last generated diagram.
041         */
042        String value() default "";
043    
044        /**
045         * If you don't want the call to a class of the "com.pany" package you can
046         * add "com.pany.*" as pattern.
047         * <p>
048         * For the pattern the same syntax as in AspectJ is supported.
049         * </p>
050         * <p>
051         * NOTE: not yet realized
052         * </p>
053         */
054        String[] excluded() default "";
055    
056        /**
057         * By default all classes are included. If you do not like that you can
058         * define a pattern wich packages and/or classes should be include.
059         * <p>
060         * For the pattern the same syntax as in AspectJ is supported.
061         * </p>
062         * <p>
063         * NOTE: not yet realized
064         * </p>
065         */
066        String[] included() default "*";
067    
068    }
069