Package org.apache.openjpa.jdbc.meta
Class PropertiesReverseCustomizer
- java.lang.Object
-
- org.apache.openjpa.jdbc.meta.PropertiesReverseCustomizer
-
- All Implemented Interfaces:
ReverseCustomizer
,Closeable
public class PropertiesReverseCustomizer extends java.lang.Object implements ReverseCustomizer
SimpleReverseCustomizer
that uses a properties file to to allow customization of basic class and field properties. The customizer uses the following keys:- <table name>.table-type: Override the default type of the
given table. Legal values are:
base, secondary, secondary-outer, association, subclass, none
. See the TABLE_XXX constants inReverseMappingTool
for descriptions. - <class name>.rename: Override the tool-generated class name
with the given value. Use full class names, including package. Use a
value of
none
to reject the class and leave the corresponding table unmapped. - <table name>.class-name: Assign the given fully-qualified
class name to the type created from the given table. Use a value of
none
to prevent mapping this table. This property can be used in place of therename
property. - <class name>.identity: Set this property to
datastore
,builtin
, or the desired fully-qualified application identity class name to override the reverse mapping tool's default identity settings. If the class has been renamed, use the new name. - <class name>.<field name>.rename: Override the
tool-generated field name with the given value. Use the field owner's
full class name in the property key. The property value should be the
new field name, without the preceding class name. Use a value of
none
to reject the generated mapping. - <table name>.<column name>.field-name: Assign the
field name to use for the mapping of a particular column. If this is
a multi-column mapping, any one of the columns can be used. Use a value
of
none
to prevent the column (and associated columns) from being mapped. This property can be used in place of therename
property. - <class name>.<field name>.type: The class name of the type to give the named field. Use full class names. If the field has been renamed, use the new name.
- <class name>.<field name>.value: The initial value for the named field. The given string will be placed as-is in the generated Java code, so be sure to add quotes to strings, etc. If the field has been renamed, use the new name.
-
-
Field Summary
Fields Modifier and Type Field Description protected ReverseMappingTool
tool
-
Constructor Summary
Constructors Constructor Description PropertiesReverseCustomizer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Invoked when the customizer is no longer needed.void
customize(ClassMapping cls)
Customize the given class information produced by the reverse mapping tool.void
customize(FieldMapping field)
Customize the given field information produced by the reverse mapping tool.java.lang.String
getClassCode(ClassMapping mapping)
Return a code template for the given class, or null to use the standard system-generated Java code.java.lang.String
getClassName(Table table, java.lang.String defaultName)
Return the fully-qualified class name to generate for the given table.java.lang.String
getDeclaration(FieldMapping field)
Return a code template for the declaration of the given field, or null to use the system-generated default Java code.java.lang.String
getFieldCode(FieldMapping field)
Return a code template for the get/set methods of the given field, or null to use the system-generated default Java code.java.lang.String
getFieldName(ClassMapping dec, Column[] cols, ForeignKey fk, java.lang.String defaultName)
Return the field name used to map the given columns, or null to prevent the columns from being mapped.java.lang.String
getInitialValue(FieldMapping field)
Return code for the initial value for the given field, or null to use the default generated by the system.protected java.lang.String
getProperty(java.lang.String key)
Return the property value for the given key, or null if none.int
getTableType(Table table, int defaultType)
Return the type of the given table, or the given default type.void
setConfiguration(java.util.Properties props)
Set configuration properties given by the user.void
setTool(ReverseMappingTool tool)
Set the reverse mapping tool using this customizer.boolean
unmappedTable(Table table)
Notification that a table has gone unmapped.
-
-
-
Field Detail
-
tool
protected ReverseMappingTool tool
-
-
Method Detail
-
setConfiguration
public void setConfiguration(java.util.Properties props)
Description copied from interface:ReverseCustomizer
Set configuration properties given by the user.- Specified by:
setConfiguration
in interfaceReverseCustomizer
-
setTool
public void setTool(ReverseMappingTool tool)
Description copied from interface:ReverseCustomizer
Set the reverse mapping tool using this customizer. You can use the tool to see how it is configured, or to use utility methods the tool provides.- Specified by:
setTool
in interfaceReverseCustomizer
-
getTableType
public int getTableType(Table table, int defaultType)
Description copied from interface:ReverseCustomizer
Return the type of the given table, or the given default type. See the TABLE_XXX constants inReverseMappingTool
.- Specified by:
getTableType
in interfaceReverseCustomizer
-
getClassName
public java.lang.String getClassName(Table table, java.lang.String defaultName)
Description copied from interface:ReverseCustomizer
Return the fully-qualified class name to generate for the given table. Return null to prevent the table from being mapped. Return the given default name if it is acceptable.- Specified by:
getClassName
in interfaceReverseCustomizer
-
customize
public void customize(ClassMapping cls)
Description copied from interface:ReverseCustomizer
Customize the given class information produced by the reverse mapping tool. To change the application identity class, useReverseMappingTool.generateClass(java.lang.String, java.lang.Class)
to creat the new class object. The class will not have any fields at the time of this call.- Specified by:
customize
in interfaceReverseCustomizer
-
getClassCode
public java.lang.String getClassCode(ClassMapping mapping)
Description copied from interface:ReverseCustomizer
Return a code template for the given class, or null to use the standard system-generated Java code. To facilitate template reuse, the following parameters can appear in your template; the proper values will be subtituted by the system:- ${packageDec}: The package declaration, in the form "package <package name >;", or empty string if no package.
- ${imports}: Imports for the packages used by the declared field types.
- ${className}: The name of the class, without package.
- ${extendsDec}: Extends declaration, in the form "extends <superclass>", or empty string if no superclass.
- ${constructor}: A constructor that takes in all primary key fields of the class, or empty string if the class uses datastore identity.
- ${fieldDecs}: Declarations of all the generated fields.
- ${fieldCode}: Get/set methods for all the generated fields.
- Specified by:
getClassCode
in interfaceReverseCustomizer
-
customize
public void customize(FieldMapping field)
Description copied from interface:ReverseCustomizer
Customize the given field information produced by the reverse mapping tool.- Specified by:
customize
in interfaceReverseCustomizer
-
getFieldName
public java.lang.String getFieldName(ClassMapping dec, Column[] cols, ForeignKey fk, java.lang.String defaultName)
Description copied from interface:ReverseCustomizer
Return the field name used to map the given columns, or null to prevent the columns from being mapped. Return the given default if it is acceptable.- Specified by:
getFieldName
in interfaceReverseCustomizer
- Parameters:
dec
- the class that will declare this fieldcols
- the column(s) this field will representfk
- for relation fields, the foreign key to the related type
-
getInitialValue
public java.lang.String getInitialValue(FieldMapping field)
Description copied from interface:ReverseCustomizer
Return code for the initial value for the given field, or null to use the default generated by the system.- Specified by:
getInitialValue
in interfaceReverseCustomizer
-
getDeclaration
public java.lang.String getDeclaration(FieldMapping field)
Description copied from interface:ReverseCustomizer
Return a code template for the declaration of the given field, or null to use the system-generated default Java code. To facilitate template reuse, the following parameters can appear in your template; the proper values will be subtituted by the system:- ${fieldName}: The name of the field.
- ${capFieldName}: The capitalized field name.
- ${propertyName}: The field name without leading '_', if any.
- ${fieldType}: The field's type name.
- ${fieldValue}: The field's initial value, in the form " = <value>", or empty string if none.
- Specified by:
getDeclaration
in interfaceReverseCustomizer
-
getFieldCode
public java.lang.String getFieldCode(FieldMapping field)
Description copied from interface:ReverseCustomizer
Return a code template for the get/set methods of the given field, or null to use the system-generated default Java code. To facilitate template reuse, the following parameters can appear in your template; the proper values will be subtituted by the system:- ${fieldName}: The name of the field.
- ${capFieldName}: The capitalized field name.
- ${propertyName}: The field name without leading '_', if any.
- ${fieldType}: The field's type name.
- ${fieldValue}: The field's initial value, in the form "= <value>", or empty string if none.
- Specified by:
getFieldCode
in interfaceReverseCustomizer
-
unmappedTable
public boolean unmappedTable(Table table)
Description copied from interface:ReverseCustomizer
Notification that a table has gone unmapped. You can map the table yourself using this method. When mapping, useReverseMappingTool.generateClass(java.lang.String, java.lang.Class)
to create the class,ReverseMappingTool.newClassMapping(java.lang.Class, org.apache.openjpa.jdbc.schema.Table)
to create the class metadata, and thenClassMapping.addDeclaredFieldMapping(java.lang.String, java.lang.Class)
to add field metadata.- Specified by:
unmappedTable
in interfaceReverseCustomizer
- Returns:
- true if you map the table, false otherwise
-
close
public void close()
Description copied from interface:ReverseCustomizer
Invoked when the customizer is no longer needed.- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceReverseCustomizer
-
getProperty
protected java.lang.String getProperty(java.lang.String key)
Return the property value for the given key, or null if none.
-
-