View Javadoc

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *     http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   */
    17  package javax.jdo.annotations;
    18
    19  import java.lang.annotation.ElementType;
    20  import java.lang.annotation.Retention;
    21  import java.lang.annotation.RetentionPolicy;
    22  import java.lang.annotation.Target;
    23
    24
    25  /**
    26   * Annotation for the element of a collection/array relation.
    27   * Corresponds to the xml element "element".
    28   *
    29   * @version 2.1
    30   * @since 2.1
    31   */
    32  @Target({ElementType.FIELD, ElementType.METHOD})
    33  @Retention(RetentionPolicy.RUNTIME)
    34  public @interface Element
    35  {
    36      /**
    37       * Types of the elements. This can be determined if using JDK1.5 generics
    38       * but is required otherwise. Multiple types can be specified if the
    39       * implementation supports multiple types.
    40       * @return the types of elements
    41       */
    42      Class[] types() default {};
    43
    44      /**
    45       * Whether the element is to be stored serialized (into a join table)
    46       * @return whether the element is to be stored serialized
    47       * (into a join table)
    48       */
    49      String serialized() default "";
    50
    51      /** Whether this element is embedded.
    52       * @return whether this element is embedded
    53       */
    54      String embedded() default "";
    55
    56      /**
    57       * The embedded mapping for the element.
    58       * @return the embedded mapping for the element
    59       */
    60      Embedded[] embeddedMapping() default {};
    61
    62      /**
    63       * Whether the element is dependent on the owner, and will be deleted
    64       * when the owner is deleted.
    65       * @return whether the element is dependent on the owner, and will be
    66       * deleted when the owner is deleted
    67       */
    68      String dependent() default "";
    69
    70      /**
    71       * Name of the table for the element.
    72       * @return name of the table for the element
    73       */
    74      String table() default "";
    75
    76      /**
    77       * Name of the column to store the element in.
    78       * @return name of the column to store the element in
    79       */
    80      String column() default "";
    81
    82      /**
    83       * Delete action to apply to any foreign key for the element.
    84       * @return delete action to apply to any foreign key for the element
    85       */
    86      ForeignKeyAction deleteAction() default ForeignKeyAction.UNSPECIFIED;
    87
    88      /**
    89       * Update action to apply to any foreign key for the element
    90       * @return update action to apply to any foreign key for the element
    91       */
    92      ForeignKeyAction updateAction() default ForeignKeyAction.UNSPECIFIED;
    93
    94      /**
    95       * Whether the value column(s) should be indexed.
    96       * @return whether the value column(s) should be indexed.
    97       */
    98      String indexed() default "";
    99
    100     /** The name of the index to generate.
    101      * @return the name of the index
    102      */
    103     String index() default "";
    104
    105     /**
    106      * Whether a unique constraint should be generated or assumed.
    107      * @return whether a unique constraint should be generated or assumed
    108      */
    109     String unique() default "";
    110
    111     /**
    112      * The name of the unique key constraint to generate.
    113      * @return the name of the unique key constraint
    114      */
    115     String uniqueKey() default "";
    116
    117     /**
    118      * Name of the member in the target class that forms a bidirectional
    119      * relationship with this member.
    120      * @return name of the member in the target class that forms a bidirectional
    121      * relationship with this member
    122      */
    123     String mappedBy() default "";
    124
    125     /**
    126      * The column(s) for the element.
    127      * @return the column(s) for the element
    128      */
    129     Column[] columns() default {};
    130
    131     /** Generate or assume a foreign key constraint exists on the column
    132      * or columns associated with this join. Specify "true" or "false".
    133      * @return whether to generate or assume a primary key constraint
    134      */
    135     String generateForeignKey() default "";
    136
    137     /** Name for a generated foreign key constraint.
    138      * @return the name of the generated foreign key constraint
    139      */
    140     String foreignKey() default "";
    141
    142     /** Vendor extensions.
    143      * @return the vendor extensions
    144      */
    145     Extension[] extensions() default {};
    146 }