| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package javax.jdo.metadata; |
| |
| import javax.jdo.annotations.ForeignKeyAction; |
| import javax.jdo.annotations.IdGeneratorStrategy; |
| import javax.jdo.annotations.NullValue; |
| import javax.jdo.annotations.PersistenceModifier; |
| |
| /** |
| * Represents a field/property in a class/persistent-interface. |
| * @since 2.3 |
| */ |
| public interface MemberMetadata extends Metadata { |
| /** |
| * Method to set the name. |
| * |
| * @param name name |
| */ |
| MemberMetadata setName(String name); |
| |
| /** |
| * Accessor for the name of the field/property. |
| * |
| * @return The name |
| */ |
| String getName(); |
| |
| /** |
| * Method to set the table name. |
| * |
| * @param table Table name |
| */ |
| MemberMetadata setTable(String table); |
| |
| /** |
| * Accessor for the name of the table. |
| * |
| * @return The name |
| */ |
| String getTable(); |
| |
| /** |
| * Method to set the column name. |
| * |
| * @param col Column name |
| */ |
| MemberMetadata setColumn(String col); |
| |
| /** |
| * Accessor for the name of the column. |
| * |
| * @return The column name |
| */ |
| String getColumn(); |
| |
| /** |
| * Method to set the field type(s). For defining where we want to restrict |
| * what type is stored in a field |
| * |
| * @param type Type of field |
| */ |
| MemberMetadata setFieldType(String type); |
| |
| /** |
| * Accessor for the type storable in the field |
| * |
| * @return The field type |
| */ |
| String getFieldType(); |
| |
| /** |
| * Method to set the delete action of the FK |
| * |
| * @param action Delete action of the FK |
| */ |
| MemberMetadata setDeleteAction(ForeignKeyAction action); |
| |
| /** |
| * Accessor for the delete action of the FK |
| * |
| * @return The FK delete-action |
| */ |
| ForeignKeyAction getDeleteAction(); |
| |
| /** |
| * Method to set the persistence-modifier of the field/property. |
| * |
| * @param mod persistence modifier |
| */ |
| MemberMetadata setPersistenceModifier(PersistenceModifier mod); |
| |
| /** |
| * Accessor for the persistence modifier of the field/property. |
| * |
| * @return The persistence modifier |
| */ |
| PersistenceModifier getPersistenceModifier(); |
| |
| /** |
| * Method to set the behaviour of a null value |
| * |
| * @param val Null value behaviour |
| */ |
| MemberMetadata setNullValue(NullValue val); |
| |
| /** |
| * Accessor for the behaviour of a null value |
| * |
| * @return The null value behaviour |
| */ |
| NullValue getNullValue(); |
| |
| /** |
| * Method to set whether it is in the DFG. |
| * |
| * @param dfg DFG? |
| */ |
| MemberMetadata setDefaultFetchGroup(boolean dfg); |
| |
| /** |
| * Accessor for whether part of the DFG. |
| * |
| * @return dfg? |
| */ |
| Boolean getDefaultFetchGroup(); |
| |
| /** |
| * Method to set whether it is unique. |
| * |
| * @param unique Unique? |
| */ |
| MemberMetadata setDependent(boolean unique); |
| |
| /** |
| * Accessor for whether unique. |
| * |
| * @return Unique? |
| */ |
| Boolean getDependent(); |
| |
| /** |
| * Method to set whether it is embedded. |
| * |
| * @param emb Embedded? |
| */ |
| MemberMetadata setEmbedded(boolean emb); |
| |
| /** |
| * Accessor for whether it is embedded. |
| * |
| * @return embedded? |
| */ |
| Boolean getEmbedded(); |
| |
| /** |
| * Method to set whether it is serialized. |
| * |
| * @param ser serialized? |
| */ |
| MemberMetadata setSerialized(boolean ser); |
| |
| /** |
| * Accessor for whether it is serialized. |
| * |
| * @return serialized? |
| */ |
| Boolean getSerialized(); |
| |
| /** |
| * Method to set whether it is part of the pk |
| * |
| * @param pk PK? |
| */ |
| MemberMetadata setPrimaryKey(boolean pk); |
| |
| /** |
| * Accessor for whether it is part of the pk. |
| * |
| * @return pk? |
| */ |
| boolean getPrimaryKey(); |
| |
| /** |
| * Method to set whether it is indexed. |
| * |
| * @param index Indexed? |
| */ |
| MemberMetadata setIndexed(boolean index); |
| |
| /** |
| * Accessor for whether it is indexed. |
| * |
| * @return Indexed? |
| */ |
| Boolean getIndexed(); |
| |
| /** |
| * Method to set whether it is unique. |
| * |
| * @param unique Unique? |
| */ |
| MemberMetadata setUnique(boolean unique); |
| |
| /** |
| * Accessor for whether unique. |
| * |
| * @return Unique? |
| */ |
| Boolean getUnique(); |
| |
| /** |
| * Method to set whether this is cacheable |
| * |
| * @param cacheable Cacheable? |
| */ |
| MemberMetadata setCacheable(boolean cacheable); |
| |
| /** |
| * Accessor for whether this is cacheable. |
| * |
| * @return Detachable? |
| */ |
| boolean getCacheable(); |
| |
| /** |
| * Method to set the recursion depth (when used in a fetch group). |
| * |
| * @param depth Recursion depth |
| */ |
| MemberMetadata setRecursionDepth(int depth); |
| |
| /** |
| * Accessor for the recursion depth (when part of a fetch group). |
| * |
| * @return Recursion depth? |
| */ |
| int getRecursionDepth(); |
| |
| /** |
| * Method to set the load fetch group. |
| * |
| * @param grp Load fetch group |
| */ |
| MemberMetadata setLoadFetchGroup(String grp); |
| |
| /** |
| * Accessor for the name of the load fetch group |
| * |
| * @return The load fetch group |
| */ |
| String getLoadFetchGroup(); |
| |
| /** |
| * Method to set the value strategy |
| * |
| * @param str Value strategy |
| */ |
| MemberMetadata setValueStrategy(IdGeneratorStrategy str); |
| |
| /** |
| * Accessor for the value strategy |
| * |
| * @return Value strategy |
| */ |
| IdGeneratorStrategy getValueStrategy(); |
| |
| /** |
| * Method to set the custom identity generation strategy. |
| * |
| * @param strategy The strategy |
| */ |
| MemberMetadata setCustomStrategy(String strategy); |
| |
| /** |
| * Accessor for the custom strategy (overriding "strategy"). |
| * |
| * @return The strategy |
| */ |
| String getCustomStrategy(); |
| |
| /** |
| * Method to set the sequence (when using value-strategy of "sequence") |
| * |
| * @param seq Sequence key |
| */ |
| MemberMetadata setSequence(String seq); |
| |
| /** |
| * Accessor for the sequence (when using value-strategy of "sequence") |
| * |
| * @return Sequence key |
| */ |
| String getSequence(); |
| |
| /** |
| * Method to set the field on the other side of a bidirectional relation |
| * (this side is owner) |
| * |
| * @param map mapped-by field/property |
| */ |
| MemberMetadata setMappedBy(String map); |
| |
| /** |
| * Accessor for the mapped-by field/property |
| * |
| * @return mapped-by field/property |
| */ |
| String getMappedBy(); |
| |
| /** |
| * Method to define the array details (if the field/property is an array) |
| * |
| * @return The ArrayMetadata |
| */ |
| ArrayMetadata newArrayMetadata(); |
| |
| /** |
| * Accessor for the array details. |
| * |
| * @return array details |
| */ |
| ArrayMetadata getArrayMetadata(); |
| |
| /** |
| * Method to define the array details (if the field/property is an array) |
| * |
| * @return The ArrayMetadata |
| */ |
| CollectionMetadata newCollectionMetadata(); |
| |
| /** |
| * Accessor for the array details. |
| * |
| * @return array details |
| */ |
| CollectionMetadata getCollectionMetadata(); |
| |
| /** |
| * Method to define the map details (if the field/property is an map) |
| * |
| * @return The MapMetadata |
| */ |
| MapMetadata newMapMetadata(); |
| |
| /** |
| * Accessor for the map details. |
| * |
| * @return map details |
| */ |
| MapMetadata getMapMetadata(); |
| |
| /** |
| * Method to define the join details |
| * |
| * @return The JoinMetadata |
| */ |
| JoinMetadata newJoinMetadata(); |
| |
| /** |
| * Accessor for the join details. |
| * |
| * @return join details |
| */ |
| JoinMetadata getJoinMetadata(); |
| |
| /** |
| * Method to define the embedded details |
| * |
| * @return The EmbeddedMetadata |
| */ |
| EmbeddedMetadata newEmbeddedMetadata(); |
| |
| /** |
| * Accessor for the embedded metadata. |
| * |
| * @return embedded metadata |
| */ |
| EmbeddedMetadata getEmbeddedMetadata(); |
| |
| /** |
| * Method to define the new element details |
| * |
| * @return The ElementMetadata |
| */ |
| ElementMetadata newElementMetadata(); |
| |
| /** |
| * Accessor for the element details |
| * |
| * @return element details |
| */ |
| ElementMetadata getElementMetadata(); |
| |
| /** |
| * Method to define the key details |
| * |
| * @return The KeyMetadata |
| */ |
| KeyMetadata newKeyMetadata(); |
| |
| /** |
| * Accessor for the key details |
| * |
| * @return key details |
| */ |
| KeyMetadata getKeyMetadata(); |
| |
| /** |
| * Method to define the value details |
| * |
| * @return The ValueMetadata |
| */ |
| ValueMetadata newValueMetadata(); |
| |
| /** |
| * Accessor for the value details |
| * |
| * @return value details |
| */ |
| ValueMetadata getValueMetadata(); |
| |
| /** |
| * Method to set index metadata for the field/property |
| * |
| * @return The metadata for any index |
| */ |
| IndexMetadata newIndexMetadata(); |
| |
| /** |
| * Accessor for any index metadata for the field/property |
| * |
| * @return Index metadata |
| */ |
| IndexMetadata getIndexMetadata(); |
| |
| /** |
| * Method to set new unique constraint metadata for the field/property |
| * |
| * @return The UniqueMetadata |
| */ |
| UniqueMetadata newUniqueMetadata(); |
| |
| /** |
| * Accessor for any unique constraint metadata on this field/property. |
| * |
| * @return The UniqueMetadata |
| */ |
| UniqueMetadata getUniqueMetadata(); |
| |
| /** |
| * Method to set new foreign key metadata for the field/property |
| * |
| * @return The ForeignKeyMetadata |
| */ |
| ForeignKeyMetadata newForeignKeyMetadata(); |
| |
| /** |
| * Accessor for any foreign key metadata on this field/property. |
| * |
| * @return The ForeignKeyMetadata |
| */ |
| ForeignKeyMetadata getForeignKeyMetadata(); |
| |
| /** |
| * Method to define the order details. |
| * |
| * @return The OrdeMetadata |
| */ |
| OrderMetadata newOrderMetadata(); |
| |
| /** |
| * Accessor for the order metadata. |
| * |
| * @return order metadata |
| */ |
| OrderMetadata getOrderMetadata(); |
| |
| /** |
| * Accessor for all column(s) defined on the join. |
| * |
| * @return The column(s) |
| */ |
| ColumnMetadata[] getColumns(); |
| |
| /** |
| * Add a new column for this join. |
| * |
| * @return The ColumnMetadata |
| */ |
| ColumnMetadata newColumnMetadata(); |
| |
| /** |
| * Accessor for the number of columns defined for this join. |
| * |
| * @return The number of columns |
| */ |
| int getNumberOfColumns(); |
| } |