Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.openjpa.jdbc.meta
Class MappingInfo

    java.lang.Object
      org.apache.openjpa.jdbc.meta.MappingInfo

All Implemented Interfaces:
  Serializable

Direct Known Subclasses:
  ClassMappingInfo, DiscriminatorMappingInfo, FieldMappingInfo, ValueMappingInfo, VersionMappingInfo

    public abstract class MappingInfo

extends Object
implements Serializable

Base class storing raw mapping information; defines utility methods for converting raw mapping information to full mapping to the schema.

Author:
  Abe White
See Also:
  Serialized Form

Nested Class Summary
`static interface` | `MappingInfo.ForeignKeyDefaults` Supplies default foreign key information.
`static interface` | `MappingInfo.TableDefaults` Supplies default table information.

Field Summary
`static int` | `JOIN_FORWARD`
`static int` | `JOIN_INVERSE`
`static int` | `JOIN_NONE`

Constructor Summary
`MappingInfo()`

Method Summary
`void` | `assertNoForeignKey(MetaDataContext context, boolean die)` Assert that the user did not try to place a foreign key on this mapping or placed an implicit foreign key.
`void` | `assertNoIndex(MetaDataContext context, boolean die)` Assert that the user did not try to place an index on this mapping.
`void` | `assertNoJoin(MetaDataContext context, boolean die)` Assert that the user did not try to join.
`void` | `assertNoSchemaComponents(MetaDataContext context, boolean die)` Assert that the user did not supply any columns, index, unique constraint, or foreign key for this mapping.
`void` | `assertNoUnique(MetaDataContext context, boolean die)` Assert that the user did not try to place a unique constraint on this mapping.
`void` | `assertStrategy(MetaDataContext context, Object contextStrat, Object expected, boolean die)` Assert that this info has the given strategy or no strategy.
`boolean` | `canForeignKey()` The user can mark columns as explicitly not having a foreign key.
`boolean` | `canIndex()` The user can mark columns as explicitly non-indexable.
`(package private) boolean` | `canMerge(List<Column> given, Column[] templates, boolean adapt, boolean fill)`
`boolean` | `canUnique()` The user can mark columns as explicitly not having a unique constraint.
`void` | `clear()` Clear all mapping information.
`protected void` | `clear(boolean canFlags)` Clear mapping information.
`void` | `copy(MappingInfo info)` Copy missing info from the instance to this one.
`protected Column[]` | `createColumns(MetaDataContext context, String prefix, Column[] tmplates, Table table, boolean adapt)` Retrieve/create columns on the given table by merging the given template information with any user-provided information.
`protected ForeignKey` | `createForeignKey(MetaDataContext context, String prefix, List<Column> given, MappingInfo.ForeignKeyDefaults def, Table table, ClassMapping cls, ClassMapping rel, boolean inversable, boolean adapt)` Retrieve/create a foreign key (possibly logical) on the given columns by merging the given template information with any user-provided information.
`protected Index` | `createIndex(MetaDataContext context, String prefix, Index tmplate, Column[] cols, boolean adapt)` Retrieve/create an index on the given columns by merging the given template information with any user-provided information.
`Table` | `createTable(MetaDataContext context, MappingInfo.TableDefaults def, DBIdentifier schemaName, DBIdentifier given, boolean adapt)`
`Table` | `createTable(MetaDataContext context, MappingInfo.TableDefaults def, String schemaName, String given, boolean adapt)` Deprecated.
`protected Unique` | `createUnique(MetaDataContext context, String prefix, Unique tmplate, Column[] cols, boolean adapt)` Retrieve/create a unique constraint on the given columns by merging the given template information with any user-provided information.
`ColumnIO` | `getColumnIO()` I/O for the columns created by the last call to `createColumns(org.apache.openjpa.meta.MetaDataContext, java.lang.String, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.Table, boolean)`, or for the foreign key created by the last call to `createForeignKey(org.apache.openjpa.meta.MetaDataContext, java.lang.String, java.util.List, org.apache.openjpa.jdbc.meta.MappingInfo.ForeignKeyDefaults, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.meta.ClassMapping, boolean, boolean)`.
`List<Column>` | `getColumns()` Raw column data.
`List<Column>` | `getColumns(DBIdentifier tableName)` Gets the columns whose table name matches the given table name.
`List<Column>` | `getColumns(String tableName)` Deprecated.
`ForeignKey` | `getForeignKey()` Raw foreign key information.
`Index` | `getIndex()` Raw index.
`int` | `getJoinDirection()` Direction of the join that the columns of this mapping info form.
`String` | `getStrategy()` Mapping strategy name.
`Unique` | `getUnique()` Raw unique constraint information.
`boolean` | `hasSchemaComponents()` Return true if this info has columns, foreign key information, index information, etc.
`boolean` | `isImplicitRelation()` Affirms if this instance represents an implicit relation.
`protected static Column` | `mergeColumn(MetaDataContext context, String prefix, Column tmplate, boolean compat, Column given, Table table, boolean adapt, boolean fill)` Merge the given columns if possible.
`void` | `setCanForeignKey(boolean fkable)` The user can mark columns as explicitly not having a foreign key.
`void` | `setCanIndex(boolean indexable)` The user can mark columns as explicitly non-indexable.
`void` | `setCanUnique(boolean uniquable)` The user can mark columns as explicitly not having a unique constraint.
`void` | `setColumnIO(ColumnIO io)` I/O for the columns created by the last call to `createColumns(org.apache.openjpa.meta.MetaDataContext, java.lang.String, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.Table, boolean)`, or for the foreign key created by the last call to `createForeignKey(org.apache.openjpa.meta.MetaDataContext, java.lang.String, java.util.List, org.apache.openjpa.jdbc.meta.MappingInfo.ForeignKeyDefaults, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.meta.ClassMapping, boolean, boolean)`.
`void` | `setColumns(List<Column> cols)` Raw column data.
`void` | `setForeignKey(ForeignKey fk)` Raw foreign key information.
`void` | `setImplicitRelation(boolean flag)` Sets a marker to imply a logical relation that can not have any physical manifest in the database.
`void` | `setIndex(Index idx)` Raw index.
`void` | `setJoinDirection(int join)` Direction of the join that the columns of this mapping info form.
`void` | `setStrategy(String strategy)` Mapping strategy name.
`void` | `setUnique(Unique unq)` Raw unique constraint information.
`protected static Column` | `syncColumn(MetaDataContext context, Column col, int num, boolean forceJDBCType, Table colTable, Table targetTable, Object target, boolean inverse)` Create a copy of the given column with the raw mapping information set correctly, and without settings that match defaults.
`protected void` | `syncColumns(MetaDataContext context, Column[] cols, boolean forceJDBCType)` Sets internal column information to match the given mapped columns.
`protected void` | `syncForeignKey(MetaDataContext context, ForeignKey fk, Table local, Table target)` Sets internal constraint and column information to match given mapped constraint.
`protected void` | `syncIndex(MetaDataContext context, Index idx)` Sets internal index information to match given mapped index.
`protected void` | `syncUnique(MetaDataContext context, Unique unq)` Sets internal constraint information to match given mapped constraint.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### JOIN_NONE

    public static final int JOIN_NONE

See Also:
  Constant Field Values

### JOIN_FORWARD

    public static final int JOIN_FORWARD

See Also:
  Constant Field Values

### JOIN_INVERSE

    public static final int JOIN_INVERSE

See Also:
  Constant Field Values

Constructor Detail

### MappingInfo

    public MappingInfo()

Method Detail

### getStrategy

    public String getStrategy()

  Mapping strategy name.

### setStrategy

    public void setStrategy(String strategy)

  Mapping strategy name.

### getColumns

    public List<Column> getColumns()

  Raw column data.

### getColumns

    public List<Column> getColumns(String tableName)

  Deprecated.

  Gets the columns whose table name matches the given table name.

### getColumns

    public List<Column> getColumns(DBIdentifier tableName)

  Gets the columns whose table name matches the given table name.

### setColumns

    public void setColumns(List<Column> cols)

  Raw column data.

### getIndex

    public Index getIndex()

  Raw index.

### setIndex

    public void setIndex(Index idx)

  Raw index.

### canIndex

    public boolean canIndex()

  The user can mark columns as explicitly non-indexable.

### setCanIndex

    public void setCanIndex(boolean indexable)

  The user can mark columns as explicitly non-indexable.

### isImplicitRelation

    public boolean isImplicitRelation()

  Affirms if this instance represents an implicit relation. For example, a relation expressed as the value of primary key of the related class and not as object reference.

  Since:
    1.3.0

### setImplicitRelation

    public void setImplicitRelation(boolean flag)

  Sets a marker to imply a logical relation that can not have any physical manifest in the database. For example, a relation expressed as the value of primary key of the related class and not as object reference. Populated from @ForeignKey(implicit=true) annotation. The mutator can only transit from false to true but not vice versa.

  Since:
    1.3.0

### getForeignKey

    public ForeignKey getForeignKey()

  Raw foreign key information.

### setForeignKey

    public void setForeignKey(ForeignKey fk)

  Raw foreign key information.

### canForeignKey

    public boolean canForeignKey()

  The user can mark columns as explicitly not having a foreign key.

### setCanForeignKey

    public void setCanForeignKey(boolean fkable)

  The user can mark columns as explicitly not having a foreign key.

### getUnique

    public Unique getUnique()

  Raw unique constraint information.

### setUnique

    public void setUnique(Unique unq)

  Raw unique constraint information.

### canUnique

    public boolean canUnique()

  The user can mark columns as explicitly not having a unique constraint.

### setCanUnique

    public void setCanUnique(boolean uniquable)

  The user can mark columns as explicitly not having a unique constraint.

### getColumnIO

    public ColumnIO getColumnIO()

  I/O for the columns created by the last call to `createColumns(org.apache.openjpa.meta.MetaDataContext, java.lang.String, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.Table, boolean)`, or for the foreign key created by the last call to `createForeignKey(org.apache.openjpa.meta.MetaDataContext, java.lang.String, java.util.List, org.apache.openjpa.jdbc.meta.MappingInfo.ForeignKeyDefaults, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.meta.ClassMapping, boolean, boolean)`. This is also expected to be set correctly prior to calls to `syncColumns(org.apache.openjpa.meta.MetaDataContext, org.apache.openjpa.jdbc.schema.Column[], boolean)` and `syncForeignKey(org.apache.openjpa.meta.MetaDataContext, org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table)`.

### setColumnIO

    public void setColumnIO(ColumnIO io)

  I/O for the columns created by the last call to `createColumns(org.apache.openjpa.meta.MetaDataContext, java.lang.String, org.apache.openjpa.jdbc.schema.Column[], org.apache.openjpa.jdbc.schema.Table, boolean)`, or for the foreign key created by the last call to `createForeignKey(org.apache.openjpa.meta.MetaDataContext, java.lang.String, java.util.List, org.apache.openjpa.jdbc.meta.MappingInfo.ForeignKeyDefaults, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.meta.ClassMapping, boolean, boolean)`. This is also expected to be set correctly prior to calls to `syncColumns(org.apache.openjpa.meta.MetaDataContext, org.apache.openjpa.jdbc.schema.Column[], boolean)` and `syncForeignKey(org.apache.openjpa.meta.MetaDataContext, org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table)`.

### getJoinDirection

    public int getJoinDirection()

  Direction of the join that the columns of this mapping info form. This is usually automatically set by `createForeignKey(org.apache.openjpa.meta.MetaDataContext, java.lang.String, java.util.List, org.apache.openjpa.jdbc.meta.MappingInfo.ForeignKeyDefaults, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.meta.ClassMapping, boolean, boolean)`. This flag is also expected to be set correctly prior to calls to `syncForeignKey(org.apache.openjpa.meta.MetaDataContext, org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table)` if the join is inversed.

### setJoinDirection

    public void setJoinDirection(int join)

  Direction of the join that the columns of this mapping info form. This is usually automatically set by `createForeignKey(org.apache.openjpa.meta.MetaDataContext, java.lang.String, java.util.List, org.apache.openjpa.jdbc.meta.MappingInfo.ForeignKeyDefaults, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.meta.ClassMapping, boolean, boolean)`. This flag is also expected to be set correctly prior to calls to `syncForeignKey(org.apache.openjpa.meta.MetaDataContext, org.apache.openjpa.jdbc.schema.ForeignKey, org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.Table)` if the join is inversed.

### clear

    public void clear()

  Clear all mapping information.

### clear

    protected void clear(boolean canFlags)

  Clear mapping information.

  Parameters:
    `canFlags` - whether to clear information about whether we can place indexed, foreign keys, etc on this mapping

### copy

    public void copy(MappingInfo info)

  Copy missing info from the instance to this one.

### hasSchemaComponents

    public boolean hasSchemaComponents()

  Return true if this info has columns, foreign key information, index information, etc.

### assertNoSchemaComponents

    public void assertNoSchemaComponents(MetaDataContext context,
                                         boolean die)

  Assert that the user did not supply any columns, index, unique constraint, or foreign key for this mapping.

### assertStrategy

    public void assertStrategy(MetaDataContext context,
                               Object contextStrat,
                               Object expected,
                               boolean die)

  Assert that this info has the given strategy or no strategy.

### assertNoIndex

    public void assertNoIndex(MetaDataContext context,
                              boolean die)

  Assert that the user did not try to place an index on this mapping.

### assertNoUnique

    public void assertNoUnique(MetaDataContext context,
                               boolean die)

  Assert that the user did not try to place a unique constraint on this mapping.

### assertNoForeignKey

    public void assertNoForeignKey(MetaDataContext context,
                                   boolean die)

  Assert that the user did not try to place a foreign key on this mapping or placed an implicit foreign key.

### assertNoJoin

    public void assertNoJoin(MetaDataContext context,
                             boolean die)

  Assert that the user did not try to join.

### createTable

    public Table createTable(MetaDataContext context,
                             MappingInfo.TableDefaults def,
                             String schemaName,
                             String given,
                             boolean adapt)

  Deprecated.

  Find or generate a table for a mapping.

  Parameters:
    `context` - the mapping that uses the table
    `def` - default table name provider
    `schemaName` - default schema if known, or null
    `given` - given table name
    `adapt` - whether we can alter the schema or mappings

### createTable

    public Table createTable(MetaDataContext context,
                             MappingInfo.TableDefaults def,
                             DBIdentifier schemaName,
                             DBIdentifier given,
                             boolean adapt)

### createColumns

    protected Column[] createColumns(MetaDataContext context,
                                     String prefix,
                                     Column[] tmplates,
                                     Table table,
                                     boolean adapt)

  Retrieve/create columns on the given table by merging the given template information with any user-provided information.

  Parameters:
    `context` - the mapping we're retrieving columns for
    `prefix` - localized error message key prefix
    `tmplates` - template columns
    `table` - the table for the columns
    `adapt` - whether we can modify the existing mapping or schema

### canMerge

    boolean canMerge(List<Column> given,
                     Column[] templates,
                     boolean adapt,
                     boolean fill)

### mergeColumn

    protected static Column mergeColumn(MetaDataContext context,
                                        String prefix,
                                        Column tmplate,
                                        boolean compat,
                                        Column given,
                                        Table table,
                                        boolean adapt,
                                        boolean fill)

  Merge the given columns if possible.

  Parameters:
    `context` - the mapping we're retrieving columns for
    `prefix` - localized error message key prefix
    `tmplate` - template for expected column information
    `compat` - whether the existing column type must be compatible with the type of the template column
    `given` - the given column information from mapping info
    `table` - the table for the columns
    `adapt` - whether we can modify the existing mapping or schema
    `fill` - whether to default missing column information

### createIndex

    protected Index createIndex(MetaDataContext context,
                                String prefix,
                                Index tmplate,
                                Column[] cols,
                                boolean adapt)

  Retrieve/create an index on the given columns by merging the given template information with any user-provided information.

  Parameters:
    `context` - the mapping we're retrieving an index for
    `prefix` - localized error message key prefix
    `tmplate` - template for expected index information
    `cols` - the indexed columns
    `adapt` - whether we can modify the existing mapping or schema

### createUnique

    protected Unique createUnique(MetaDataContext context,
                                  String prefix,
                                  Unique tmplate,
                                  Column[] cols,
                                  boolean adapt)

  Retrieve/create a unique constraint on the given columns by merging the given template information with any user-provided information.

  Parameters:
    `context` - the mapping we're retrieving a constraint for
    `prefix` - localized error message key prefix
    `tmplate` - template for expected unique information
    `cols` - the constraint columns
    `adapt` - whether we can modify the existing mapping or schema

### createForeignKey

    protected ForeignKey createForeignKey(MetaDataContext context,
                                          String prefix,
                                          List<Column> given,
                                          MappingInfo.ForeignKeyDefaults def,
                                          Table table,
                                          ClassMapping cls,
                                          ClassMapping rel,
                                          boolean inversable,
                                          boolean adapt)

  Retrieve/create a foreign key (possibly logical) on the given columns by merging the given template information with any user-provided information.

  Parameters:
    `context` - the mapping we're retrieving a key for
    `prefix` - localized error message key prefix
    `given` - the columns given by the user
    `def` - defaults provider
    `table` - the table for the key
    `cls` - type we're joining from
    `rel` - target type we're joining to
    `inversable` - whether the foreign key can be inversed
    `adapt` - whether we can modify the existing mapping or schema

### syncColumns

    protected void syncColumns(MetaDataContext context,
                               Column[] cols,
                               boolean forceJDBCType)

  Sets internal column information to match the given mapped columns.

  Parameters:
    `forceJDBCType` - whether to force the jdbc-type of the columns to be set, even when it matches the default for the columns' java type

### syncIndex

    protected void syncIndex(MetaDataContext context,
                             Index idx)

  Sets internal index information to match given mapped index.

### syncUnique

    protected void syncUnique(MetaDataContext context,
                              Unique unq)

  Sets internal constraint information to match given mapped constraint.

### syncForeignKey

    protected void syncForeignKey(MetaDataContext context,
                                  ForeignKey fk,
                                  Table local,
                                  Table target)

  Sets internal constraint and column information to match given mapped constraint.

  Parameters:
    `local` - default local table
    `target` - default target table

### syncColumn

    protected static Column syncColumn(MetaDataContext context,
                                       Column col,
                                       int num,
                                       boolean forceJDBCType,
                                       Table colTable,
                                       Table targetTable,
                                       Object target,
                                       boolean inverse)

  Create a copy of the given column with the raw mapping information set correctly, and without settings that match defaults.

  Parameters:
    `num` - the number of columns for this mapping
    `forceJDBCType` - whether the jdbc-type of the created column should be set, even if it matches the default for the given column's java type
    `colTable` - expected table for the column
    `targetTable` - expected target table for join column
    `target` - target column or object for join column; for a constant null target, use `NULL`
    `inverse` - whether join column is for inverse join

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2006-2013 Apache Software Foundation. All Rights Reserved.