Module org.eclipse.persistence.core
Interface Platform
-
- All Superinterfaces:
Cloneable,CorePlatform<ConversionManager>,Serializable
- All Known Implementing Classes:
AccessPlatform,AttunityPlatform,CloudscapePlatform,DatabasePlatform,DatabasePlatform,DatasourcePlatform,DB2MainframePlatform,DB2Platform,DB2ZPlatform,DBasePlatform,DerbyPlatform,DOMPlatform,EISPlatform,FirebirdPlatform,H2Platform,HANAPlatform,HSQLPlatform,Informix11Platform,InformixPlatform,JavaDBPlatform,MariaDBPlatform,MaxDBPlatform,MySQLPlatform,Oracle10Platform,Oracle11Platform,Oracle12Platform,Oracle18Platform,Oracle19Platform,Oracle21Platform,Oracle23Platform,Oracle8Platform,Oracle9Platform,OraclePlatform,PervasivePlatform,PointBasePlatform,PostgreSQL10Platform,PostgreSQLPlatform,SAXPlatform,SQLAnywherePlatform,SQLServerPlatform,SybasePlatform,SymfowarePlatform,TimesTen7Platform,TimesTenPlatform,XMLPlatform
public interface Platform extends CorePlatform<ConversionManager>, Serializable, Cloneable
Platform is private to TopLink. It encapsulates behavior specific to a datasource platform (eg. Oracle, Sybase, DB2, Attunity, MQSeries), and provides the interface for TopLink to access this behavior.- Since:
- OracleAS TopLink 10g (10.0.3)
- See Also:
DatasourcePlatform,DatabasePlatform,EISPlatform
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description voidaddSequence(Sequence sequence)Add sequence.voidaddSequence(Sequence sequence, boolean isConnected)Add sequence.voidappendParameter(Call call, Writer writer, Object parameter)Add the parameter.Objectclone()default Map<Object,Object>connectionProperties()INTERNAL: Get platform specific connection properties.<T> TconvertObject(Object sourceObject, Class<T> javaClass)Convert the object to the appropriate type by invoking the appropriate ConversionManager methodvoidcopyInto(Platform platform)Copy the state into the new platform.ConversionManagergetConversionManager()The platform hold its own instance of conversion manager to allow customization.ObjectgetCustomModifyValueForCall(Call call, Object value, DatabaseField field, boolean shouldBind)Allow for the platform to handle the representation of parameters specially.SequencegetDefaultSequence()Get default sequence.SequencegetDefaultSequenceToWrite()INTERNAL: Used only for writing into XML or Java.StringgetDriverVersion()Return the driver version.StringgetEndDelimiter()Delimiter to use for fields and tables using spaces or other special values.SequencegetSequence(String seqName)Get sequence corresponding to the name.Map<String,Sequence>getSequences()INTERNAL: Returns a map of sequence names to Sequences (may be null).Map<String,Sequence>getSequencesToWrite()INTERNAL: Used only for writing into XML or Java.StringgetStartDelimiter()Delimiter to use for fields and tables using spaces or other special values.StringgetTableQualifier()Return the qualifier for the table.TimestampgetTimestampFromServer(AbstractSession session, String sessionName)Answer the timestamp from the server.ValueReadQuerygetTimestampQuery()This method can be overridden by subclasses to return a query that will return the timestamp from the server.ValueReadQuerygetUUIDQuery()This method can be overridden by subclasses to return a query that will return the UUID from the server.voidinitialize()Allow the platform to initialize itself after login/init.voidinitIdentitySequences(Session session, String defaultIdentityGenerator)INTERNAL: Initialize platform specific identity sequences.booleanisAccess()booleanisAttunity()booleanisCloudscape()booleanisDB2()booleanisDB2Z()booleanisDBase()booleanisDerby()booleanisH2()booleanisHANA()booleanisHSQL()booleanisInformix()booleanisMariaDB()booleanisMaxDB()booleanisMySQL()booleanisODBC()booleanisOracle()booleanisOracle12()booleanisOracle23()booleanisOracle9()booleanisPointBase()booleanisPostgreSQL()booleanisSQLAnywhere()booleanisSQLServer()booleanisSybase()booleanisSymfoware()booleanisTimesTen()booleanisTimesTen7()voidremoveAllSequences()Remove all sequences that were added through addSequence method.voidremoveIdentitySequences(Session session, String defaultIdentityGenerator, Set<String> tableNames)INTERNAL: Remove platform specific identity sequences for specified tables.SequenceremoveSequence(String seqName)Remove sequence corresponding to the name (the sequence was added through addSequence method) Don't use if the session is connected.voidsetConversionManager(ConversionManager conversionManager)The platform hold its own instance of conversion manager to allow customization.voidsetDefaultSequence(Sequence sequence)Set default sequence.voidsetSequences(Map<String,Sequence> sequences)INTERNAL: Used only for reading from XML.voidsetTableQualifier(String qualifier)Set the qualifier for the table.voidsetTimestampQuery(ValueReadQuery tsQuery)Can override the default query for returning a timestamp from the server.voidsetUUIDQuery(ValueReadQuery uuidQuery)Can override the default query for returning a UUID from the server.booleanshouldUseCustomModifyForCall(DatabaseField field)Allow for the platform to handle the representation of parameters specially.booleanusesPlatformDefaultSequence()INTERNAL: Indicates whether defaultSequence is the same as platform default sequence.
-
-
-
Method Detail
-
clone
Object clone()
-
convertObject
<T> T convertObject(Object sourceObject, Class<T> javaClass) throws ConversionException
Convert the object to the appropriate type by invoking the appropriate ConversionManager method- Specified by:
convertObjectin interfaceCorePlatform<ConversionManager>- Parameters:
sourceObject- the object that must be convertedjavaClass- the class that the object must be converted to- Returns:
- the newly converted object
- Throws:
ConversionException- all exceptions will be thrown as this type.
-
copyInto
void copyInto(Platform platform)
Copy the state into the new platform.
-
getConversionManager
ConversionManager getConversionManager()
The platform hold its own instance of conversion manager to allow customization.- Specified by:
getConversionManagerin interfaceCorePlatform<ConversionManager>
-
setConversionManager
void setConversionManager(ConversionManager conversionManager)
The platform hold its own instance of conversion manager to allow customization.
-
getDriverVersion
String getDriverVersion()
Return the driver version.
-
getTableQualifier
String getTableQualifier()
Return the qualifier for the table. Required by some databases such as Oracle and DB2
-
getTimestampFromServer
Timestamp getTimestampFromServer(AbstractSession session, String sessionName)
Answer the timestamp from the server.
-
getTimestampQuery
ValueReadQuery getTimestampQuery()
This method can be overridden by subclasses to return a query that will return the timestamp from the server. return null if the time should be the local time.
-
getUUIDQuery
ValueReadQuery getUUIDQuery()
This method can be overridden by subclasses to return a query that will return the UUID from the server. return null if UUID generation is not available at the server.
-
isH2
boolean isH2()
-
isAccess
boolean isAccess()
-
isAttunity
boolean isAttunity()
-
isCloudscape
boolean isCloudscape()
-
isDerby
boolean isDerby()
-
isDB2
boolean isDB2()
-
isDB2Z
boolean isDB2Z()
-
isDBase
boolean isDBase()
-
isHANA
boolean isHANA()
-
isHSQL
boolean isHSQL()
-
isInformix
boolean isInformix()
-
isMaxDB
boolean isMaxDB()
-
isMariaDB
boolean isMariaDB()
-
isMySQL
boolean isMySQL()
-
isODBC
boolean isODBC()
-
isOracle
boolean isOracle()
-
isOracle9
boolean isOracle9()
-
isOracle12
boolean isOracle12()
-
isOracle23
boolean isOracle23()
-
isPointBase
boolean isPointBase()
-
isSQLAnywhere
boolean isSQLAnywhere()
-
isSQLServer
boolean isSQLServer()
-
isSybase
boolean isSybase()
-
isSymfoware
boolean isSymfoware()
-
isTimesTen
boolean isTimesTen()
-
isTimesTen7
boolean isTimesTen7()
-
isPostgreSQL
boolean isPostgreSQL()
-
initialize
void initialize()
Allow the platform to initialize itself after login/init.
-
setTableQualifier
void setTableQualifier(String qualifier)
Set the qualifier for the table. Required by some databases such as Oracle and DB2
-
setTimestampQuery
void setTimestampQuery(ValueReadQuery tsQuery)
Can override the default query for returning a timestamp from the server. See: getTimestampFromServer
-
setUUIDQuery
void setUUIDQuery(ValueReadQuery uuidQuery)
Can override the default query for returning a UUID from the server.
-
appendParameter
void appendParameter(Call call, Writer writer, Object parameter)
Add the parameter. Convert the parameter to a string and write it.
-
getCustomModifyValueForCall
Object getCustomModifyValueForCall(Call call, Object value, DatabaseField field, boolean shouldBind)
Allow for the platform to handle the representation of parameters specially.
-
getEndDelimiter
String getEndDelimiter()
Delimiter to use for fields and tables using spaces or other special values. Some databases use different delimiters for the beginning and end of the value. This delimiter indicates the end of the value.
-
getStartDelimiter
String getStartDelimiter()
Delimiter to use for fields and tables using spaces or other special values. Some databases use different delimiters for the beginning and end of the value. This delimiter indicates the start of the value.
-
shouldUseCustomModifyForCall
boolean shouldUseCustomModifyForCall(DatabaseField field)
Allow for the platform to handle the representation of parameters specially.
-
getDefaultSequence
Sequence getDefaultSequence()
Get default sequence. Sequence name shouldn't be altered - don't do: getDefaultSequence().setName(newName).
-
setDefaultSequence
void setDefaultSequence(Sequence sequence)
Set default sequence. The sequence should have a unique name that shouldn't be altered after the sequence has been set: don't do: getDefaultSequence().setName(newName)). Default constructors for Sequence subclasses set name to "SEQ".
-
addSequence
void addSequence(Sequence sequence)
Add sequence. The sequence should have a unique name that shouldn't be altered after the sequence has been added - don't do: getSequence(name).setName(newName)) Don't use if the session is connected.
-
addSequence
void addSequence(Sequence sequence, boolean isConnected)
Add sequence. The sequence should have a unique name that shouldn't be altered after the sequence has been added - don't do: getSequence(name).setName(newName)) Use this method with isConnected parameter set to true to add a sequence to connected session. If sequencing is connected then the sequence is added only if there is no sequence with the same name already in use.
-
getSequence
Sequence getSequence(String seqName)
Get sequence corresponding to the name. The name shouldn't be altered - don't do: getSequence(name).setName(newName)
-
removeSequence
Sequence removeSequence(String seqName)
Remove sequence corresponding to the name (the sequence was added through addSequence method) Don't use if the session is connected.
-
removeAllSequences
void removeAllSequences()
Remove all sequences that were added through addSequence method.
-
getSequences
Map<String,Sequence> getSequences()
INTERNAL: Returns a map of sequence names to Sequences (may be null).
-
getSequencesToWrite
Map<String,Sequence> getSequencesToWrite()
INTERNAL: Used only for writing into XML or Java.
-
getDefaultSequenceToWrite
Sequence getDefaultSequenceToWrite()
INTERNAL: Used only for writing into XML or Java.
-
setSequences
void setSequences(Map<String,Sequence> sequences)
INTERNAL: Used only for reading from XML.
-
usesPlatformDefaultSequence
boolean usesPlatformDefaultSequence()
INTERNAL: Indicates whether defaultSequence is the same as platform default sequence.
-
initIdentitySequences
void initIdentitySequences(Session session, String defaultIdentityGenerator)
INTERNAL: Initialize platform specific identity sequences. This method is called fromEntityManagerSetupImplafter login and optional schema generation. Method is also called fromTableCreatorclass during tables creation and update..- Parameters:
session- Active database session (in connected state).defaultIdentityGenerator- Default identity generator sequence name.- Since:
- 2.7
-
removeIdentitySequences
void removeIdentitySequences(Session session, String defaultIdentityGenerator, Set<String> tableNames)
INTERNAL: Remove platform specific identity sequences for specified tables. Default identity sequences are restored. Method is also called fromTableCreatorclass during tables removal.- Parameters:
session- Active database session (in connected state).defaultIdentityGenerator- Default identity generator sequence name.tableNames- Set of table names to check for identity sequence removal.- Since:
- 2.7
-
-