Class MongoPlatform

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, org.eclipse.persistence.internal.core.databaseaccess.CorePlatform<org.eclipse.persistence.internal.helper.ConversionManager>, org.eclipse.persistence.internal.databaseaccess.Platform

    public class MongoPlatform
    extends org.eclipse.persistence.eis.EISPlatform
    Platform for Mongo database.
    See Also:
    Serialized Form
    Author:
    James
    Since:
    EclipseLink 2.4
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String BATCH_SIZE  
      static java.lang.String COLLECTION  
      protected boolean isLikeRegex
      Configure if like should be SQL or regex.
      static java.lang.String LIMIT  
      static java.lang.String OPERATION
      Mongo interaction spec properties.
      static java.lang.String OPTIONS  
      static java.lang.String READ_PREFERENCE  
      static java.lang.String SKIP  
      static java.lang.String WRITE_CONCERN  
      • Fields inherited from class org.eclipse.persistence.eis.EISPlatform

        domMethod, isDOMRecordSupported, isIndexedRecordSupported, isMappedRecordSupported, recordConverter, requiresAutoCommit, shouldConvertDataToStrings, supportsLocalTransactions, xmlConversionManager
      • Fields inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform

        conversionManager, dataTypesConvertedFromAClass, dataTypesConvertedToAClass, defaultNativeSequenceToTable, defaultSeqenceAtNextValue, defaultSequence, endDelimiter, platformOperators, sequences, sequencesLock, startDelimiter, supportsReturnGeneratedKeys, tableQualifier, timestampQuery
    • Constructor Summary

      Constructors 
      Constructor Description
      MongoPlatform()
      Default constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void appendExpressionToQueryRow​(org.eclipse.persistence.expressions.Expression expression, org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.queries.DatabaseQuery query)
      Append the expression and recursively to the query row.
      protected void appendExpressionToSortRow​(org.eclipse.persistence.expressions.Expression expression, org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.queries.DatabaseQuery query)
      Append the order by expression to the sort row.
      org.eclipse.persistence.internal.databaseaccess.DatasourceCall buildCallFromStatement​(org.eclipse.persistence.internal.expressions.SQLStatement statement, org.eclipse.persistence.queries.DatabaseQuery query, org.eclipse.persistence.internal.sessions.AbstractSession session)
      INTERNAL: Override this method to throw an exception by default.
      javax.resource.cci.InteractionSpec buildInteractionSpec​(org.eclipse.persistence.eis.interactions.EISInteraction interaction)
      Allow the platform to build the interaction spec based on properties defined in the interaction.
      javax.resource.cci.Record createOutputRecord​(org.eclipse.persistence.eis.interactions.EISInteraction interaction, org.eclipse.persistence.internal.sessions.AbstractRecord translationRow, org.eclipse.persistence.eis.EISAccessor accessor)
      For updates a separate translation record is required.
      protected org.eclipse.persistence.sequencing.Sequence createPlatformDefaultSequence()
      INTERNAL: Create platform-default Sequence
      protected java.lang.Object extractValueFromExpression​(org.eclipse.persistence.expressions.Expression expression, org.eclipse.persistence.queries.DatabaseQuery query)
      Extract the field or constant value from the comparison expression.
      void initializeDefaultQueries​(org.eclipse.persistence.descriptors.DescriptorQueryManager queryManager, org.eclipse.persistence.internal.sessions.AbstractSession session)
      INTERNAL: Allow the platform to initialize the CRUD queries to defaults.
      boolean isLikeRegex()
      Return if regex should be used for like.
      void setIsLikeRegex​(boolean isLikeRegex)
      Set if regex should be used for like.
      void setValueInRecord​(java.lang.String key, java.lang.Object value, javax.resource.cci.MappedRecord record, org.eclipse.persistence.eis.EISAccessor accessor)
      Mongo does not support all Java types.
      boolean shouldPrepare​(org.eclipse.persistence.queries.DatabaseQuery query)
      Do not prepare dynamic queries, as the translation row is required.
      • Methods inherited from class org.eclipse.persistence.eis.EISPlatform

        appendParameter, buildNativeCall, buildRow, buildRows, createDatabaseRowFromDOMRecord, createDOMRecord, createInputRecord, getConversionManager, getRecordConverter, getValueFromRecord, isDOMRecordSupported, isIndexedRecordSupported, isMappedRecordSupported, requiresAutoCommit, setDOMInRecord, setIsDOMRecordSupported, setIsIndexedRecordSupported, setIsMappedRecordSupported, setRecordConverter, setRequiresAutoCommit, setShouldConvertDataToStrings, setSupportsLocalTransactions, shouldConvertDataToStrings, supportsLocalTransactions
      • Methods inherited from class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform

        addOperator, addSequence, addSequence, buildSelectQueryForIdentity, buildSelectQueryForIdentity, buildSelectQueryForSequenceObject, buildSelectQueryForSequenceObject, clone, convertObject, convertObject, copyInto, createConnectionCustomizer, createExpressionFor, getCustomModifyValueForCall, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultNativeSequenceToTable, getDefaultSeqenceAtNextValue, getDefaultSequence, getDefaultSequenceToWrite, getDriverVersion, getEndDelimiter, getIdentifierQuoteCharacter, getINClauseLimit, getOperator, getPlatformOperators, getSelectSequenceQuery, getSequence, getSequencePreallocationSize, getSequences, getSequencesToWrite, getStartDelimiter, getTableQualifier, getTimestampFromServer, getTimestampQuery, getUpdateSequenceQuery, hasDefaultSequence, initialize, initializePlatformOperators, isAccess, isAttunity, isCloudscape, isDB2, isDB2Z, isDBase, isDerby, isFirebird, isH2, isHANA, isHSQL, isInformix, isMaxDB, isMySQL, isODBC, isOracle, isOracle23, isOracle9, isPervasive, isPointBase, isPostgreSQL, isSQLAnywhere, isSQLServer, isSybase, isSymfoware, isTimesTen, isTimesTen7, removeAllSequences, removeSequence, sequencesAfterCloneCleanup, setConversionManager, setDefaultNativeSequenceToTable, setDefaultSeqenceAtNextValue, setDefaultSequence, setEndDelimiter, setSelectSequenceNumberQuery, setSequencePreallocationSize, setSequences, setStartDelimiter, setSupportsReturnGeneratedKeys, setTableQualifier, setTimestampQuery, setUpdateSequenceQuery, shouldNativeSequenceUseTransaction, shouldSelectDistinctIncludeOrderBy, shouldSelectIncludeOrderBy, shouldUseCustomModifyForCall, supportsIdentity, supportsNativeSequenceNumbers, supportsReturnGeneratedKeys, supportsSequenceObjects, toString, usesPlatformDefaultSequence
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • MongoPlatform

        public MongoPlatform()
        Default constructor.
    • Method Detail

      • setValueInRecord

        public void setValueInRecord​(java.lang.String key,
                                     java.lang.Object value,
                                     javax.resource.cci.MappedRecord record,
                                     org.eclipse.persistence.eis.EISAccessor accessor)
        Mongo does not support all Java types. Convert unsupported types to string.
        Overrides:
        setValueInRecord in class org.eclipse.persistence.eis.EISPlatform
      • isLikeRegex

        public boolean isLikeRegex()
        Return if regex should be used for like.
      • setIsLikeRegex

        public void setIsLikeRegex​(boolean isLikeRegex)
        Set if regex should be used for like.
      • buildInteractionSpec

        public javax.resource.cci.InteractionSpec buildInteractionSpec​(org.eclipse.persistence.eis.interactions.EISInteraction interaction)
        Allow the platform to build the interaction spec based on properties defined in the interaction.
        Overrides:
        buildInteractionSpec in class org.eclipse.persistence.eis.EISPlatform
      • createOutputRecord

        public javax.resource.cci.Record createOutputRecord​(org.eclipse.persistence.eis.interactions.EISInteraction interaction,
                                                            org.eclipse.persistence.internal.sessions.AbstractRecord translationRow,
                                                            org.eclipse.persistence.eis.EISAccessor accessor)
        For updates a separate translation record is required. The output row is used for this.
        Overrides:
        createOutputRecord in class org.eclipse.persistence.eis.EISPlatform
      • initializeDefaultQueries

        public void initializeDefaultQueries​(org.eclipse.persistence.descriptors.DescriptorQueryManager queryManager,
                                             org.eclipse.persistence.internal.sessions.AbstractSession session)
        INTERNAL: Allow the platform to initialize the CRUD queries to defaults. Configure the CRUD operations using GET/PUT and DELETE.
        Overrides:
        initializeDefaultQueries in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
      • buildCallFromStatement

        public org.eclipse.persistence.internal.databaseaccess.DatasourceCall buildCallFromStatement​(org.eclipse.persistence.internal.expressions.SQLStatement statement,
                                                                                                     org.eclipse.persistence.queries.DatabaseQuery query,
                                                                                                     org.eclipse.persistence.internal.sessions.AbstractSession session)
        INTERNAL: Override this method to throw an exception by default. Platforms that support dynamic querying can override this to generate an EISInteraction.
        Overrides:
        buildCallFromStatement in class org.eclipse.persistence.eis.EISPlatform
      • appendExpressionToQueryRow

        protected void appendExpressionToQueryRow​(org.eclipse.persistence.expressions.Expression expression,
                                                  org.eclipse.persistence.internal.sessions.AbstractRecord row,
                                                  org.eclipse.persistence.queries.DatabaseQuery query)
        Append the expression and recursively to the query row.
      • appendExpressionToSortRow

        protected void appendExpressionToSortRow​(org.eclipse.persistence.expressions.Expression expression,
                                                 org.eclipse.persistence.internal.sessions.AbstractRecord row,
                                                 org.eclipse.persistence.queries.DatabaseQuery query)
        Append the order by expression to the sort row.
      • extractValueFromExpression

        protected java.lang.Object extractValueFromExpression​(org.eclipse.persistence.expressions.Expression expression,
                                                              org.eclipse.persistence.queries.DatabaseQuery query)
        Extract the field or constant value from the comparison expression.
      • shouldPrepare

        public boolean shouldPrepare​(org.eclipse.persistence.queries.DatabaseQuery query)
        Do not prepare dynamic queries, as the translation row is required.
        Overrides:
        shouldPrepare in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform
      • createPlatformDefaultSequence

        protected org.eclipse.persistence.sequencing.Sequence createPlatformDefaultSequence()
        INTERNAL: Create platform-default Sequence
        Overrides:
        createPlatformDefaultSequence in class org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform