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.metadata;
    18
    19  import javax.jdo.annotations.InheritanceStrategy;
    20
    21  /**
    22   * Represents the inheritance of a class.
    23   * @since 3.0
    24   */
    25  public interface InheritanceMetadata extends Metadata {
    26      /**
    27       * Method to set the inheritance strategy.
    28       *
    29       * @param strategy The strategy
    30       */
    31      InheritanceMetadata setStrategy(InheritanceStrategy strategy);
    32
    33      /**
    34       * Accessor for the inheritance strategy.
    35       *
    36       * @return The strategy
    37       */
    38      InheritanceStrategy getStrategy();
    39
    40      /**
    41       * Method to set the custom inheritance strategy.
    42       *
    43       * @param strategy The strategy
    44       */
    45      InheritanceMetadata setCustomStrategy(String strategy);
    46
    47      /**
    48       * Accessor for the custom inheritance (overriding "strategy").
    49       *
    50       * @return The strategy
    51       */
    52      String getCustomStrategy();
    53
    54      /**
    55       * Method to define the new discriminator metadata.
    56       *
    57       * @return The DiscriminatorMetadata
    58       */
    59      DiscriminatorMetadata newDiscriminatorMetadata();
    60
    61      /**
    62       * Accessor for the discriminator (if any).
    63       *
    64       * @return Discriminator
    65       */
    66      DiscriminatorMetadata getDiscriminatorMetadata();
    67
    68      /**
    69       * Method to define the new join information
    70       *
    71       * @return The JoinMetadata
    72       */
    73      JoinMetadata newJoinMetadata();
    74
    75      /**
    76       * Accessor for the join (if any).
    77       *
    78       * @return Join information
    79       */
    80      JoinMetadata getJoinMetadata();
    81  }