org.salespointframework.core.data.database
Interface ClassFieldMapper

All Known Implementing Classes:
DefaultClassFieldMapper

public interface ClassFieldMapper

The ClassFieldMapper inspects class types and performs a type mapping

Since:
4.0
Author:
Thomas Kissinger

Method Summary
 java.lang.String getClassNameFieldType()
          gets db field type for storing class names
 java.lang.String[] getConstructionParameters(java.lang.Class c)
          return parameter which should be passed to constructor
 java.lang.reflect.Constructor getConstructor(java.lang.Class c)
          return the constructor which should be used for instantiation
 java.lang.String getDefaultType()
          get the default type for foreign keys
 java.util.Map<java.lang.reflect.Field,java.lang.Boolean> getDistributionMap(java.lang.Class c, java.lang.Object o)
          DistributionMap indicates for each relevant field, if it should be stored in the record or in a external table true means: local false means: external
 java.lang.Class getImplementationKey(java.lang.Class c)
          Returns the Implementation key for interfaces
 java.util.List<java.lang.reflect.Field> getRelevantFields(java.lang.Class c)
          return a list of all relevant fields e.g. transient, static fields can be excluded
 java.util.Map<java.lang.String,java.lang.String> getSQLFieldMap(java.lang.Class c, java.lang.Object o)
          Maps each relevant field of the class to a (basic) database type
 java.lang.reflect.Field getUniqueField(java.lang.Class c)
          get the unique field of the class
 boolean initializeClass(java.lang.Class c)
          indicates whether the class needs to be initialized via reflections
 java.lang.String isBasicType(java.lang.Class c)
          returns the basic tpye, if the class can be written directly to the record
 boolean isKeyAutoAssigned(java.lang.Class c)
          Check if key should be assigned automatically
 void setDataseConnection(DatabaseConnection dbc)
          current database connection to work with
 

Method Detail

setDataseConnection

void setDataseConnection(DatabaseConnection dbc)
current database connection to work with

Parameters:
dbc -

getSQLFieldMap

java.util.Map<java.lang.String,java.lang.String> getSQLFieldMap(java.lang.Class c,
                                                                java.lang.Object o)
Maps each relevant field of the class to a (basic) database type

Parameters:
c - class to map
o - object to map
Returns:
the field map

getDistributionMap

java.util.Map<java.lang.reflect.Field,java.lang.Boolean> getDistributionMap(java.lang.Class c,
                                                                            java.lang.Object o)
DistributionMap indicates for each relevant field, if it should be stored in the record or in a external table true means: local false means: external

Parameters:
c - class to map
o - object to map
Returns:
the ditribution map

getRelevantFields

java.util.List<java.lang.reflect.Field> getRelevantFields(java.lang.Class c)
return a list of all relevant fields e.g. transient, static fields can be excluded

Parameters:
c - class to inspect
Returns:

isBasicType

java.lang.String isBasicType(java.lang.Class c)
returns the basic tpye, if the class can be written directly to the record

Parameters:
c - class to inspect
Returns:
the basic type, or null if not basic

getUniqueField

java.lang.reflect.Field getUniqueField(java.lang.Class c)
get the unique field of the class

Parameters:
c - class to inspect
Returns:
the unique field

getDefaultType

java.lang.String getDefaultType()
get the default type for foreign keys

Returns:

getClassNameFieldType

java.lang.String getClassNameFieldType()
gets db field type for storing class names

Returns:

initializeClass

boolean initializeClass(java.lang.Class c)
indicates whether the class needs to be initialized via reflections

Parameters:
c - class to inspect
Returns:
true if it needs

getConstructor

java.lang.reflect.Constructor getConstructor(java.lang.Class c)
return the constructor which should be used for instantiation

Parameters:
c - class to inspect
Returns:

getConstructionParameters

java.lang.String[] getConstructionParameters(java.lang.Class c)
return parameter which should be passed to constructor

Parameters:
c - class to inspect
Returns:

getImplementationKey

java.lang.Class getImplementationKey(java.lang.Class c)
Returns the Implementation key for interfaces

Parameters:
c - class to inspect
Returns:

isKeyAutoAssigned

boolean isKeyAutoAssigned(java.lang.Class c)
Check if key should be assigned automatically

Parameters:
c - Class to inspect
Returns:
true, is auto assigned