1 /*
   2  * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package javax.annotation;
  27 import java.lang.annotation.*;
  28 import static java.lang.annotation.ElementType.*;
  29 import static java.lang.annotation.RetentionPolicy.*;
  30 
  31 /**
  32  * The Generated annotation is used to mark source code that has been generated.
  33  * It can also be used to differentiate user written code from generated code
  34  * in a single file. When used, the value element must have the name of the
  35  * code generator. The recommended convention is to use the fully qualified
  36  * name of the code generator in the value field .
  37  * <p>For example: com.company.package.classname.
  38  * The date element is used to indicate the date the source was generated.
  39  * The date element must follow the ISO 8601 standard. For example the date
  40  * element would have the following value 2001-07-04T12:08:56.235-0700
  41  * which represents 2001-07-04 12:08:56 local time in the U.S. Pacific
  42  * Time time zone.</p>
  43  * <p>The comment element is a place holder for any comments that the code
  44  * generator may want to include in the generated code.</p>
  45  *
  46  * @since 1.6, Common Annotations 1.0
  47  */
  48 
  49 @Documented
  50 @Retention(SOURCE)
  51 @Target({PACKAGE, TYPE, ANNOTATION_TYPE, METHOD, CONSTRUCTOR, FIELD,
  52         LOCAL_VARIABLE, PARAMETER})
  53 public @interface Generated {
  54    /**
  55     * The value element MUST have the name of the code generator.
  56     * The recommended convention is to use the fully qualified name of the
  57     * code generator. For example: com.acme.generator.CodeGen.
  58     */
  59    String[] value();
  60 
  61    /**
  62     * Date when the source was generated.
  63     */
  64    String date() default "";
  65 
  66    /**
  67     * A place holder for any comments that the code generator may want to
  68     * include in the generated code.
  69     */
  70    String comments() default "";
  71 }