Class CicsIndexedFile

All Implemented Interfaces:
IPersistence, ISQLWrapper, AbstractDataObject, ICBLBeanNGroup, ICBLContainer, IFieldContainer, ISMBean, ISMDataType

public abstract class CicsIndexedFile extends IndexedFileSingleProcess implements ISQLWrapper
This class is the super class of data-items accessed by CICS IO operations. e.g. CICS READ , WRITE, DELETE, REWRITE
Whist CicsPersistance class reads/writes from an SQL Database, this class reads/writes from a file on file-system This class is designed to be access by a single program/thread at a time. No transaction management capability is built it.
  • Field Details

  • Constructor Details

    • CicsIndexedFile

      public CicsIndexedFile(BaseService owner)
  • Method Details

    • getOwningCicsService

      public CicsBaseService getOwningCicsService()
    • retrieveThrowInvalidKeyException

      public boolean retrieveThrowInvalidKeyException()
      Description copied from interface: ISQLWrapper
      for internal use only - For VSAM SEEK / READ / ... VSAM apps need to throw InvalidKeyException (even if they use CICS delegates), but CICS applications need to throw KeyNotFoundException ,
      Specified by:
      retrieveThrowInvalidKeyException in interface ISQLWrapper
      Returns:
    • assignThrowInvalidKeyException

      public void assignThrowInvalidKeyException(boolean newValue)
      Description copied from interface: ISQLWrapper
      for internal use only - For VSAM SEEK / READ / ... VSAM apps need to throw InvalidKeyException (even if they use CICS delegates), but CICS applications need to throw KeyNotFoundException ,
      Specified by:
      assignThrowInvalidKeyException in interface ISQLWrapper
    • assignFileOpened

      public void assignFileOpened(int openMode)
    • assignDelegateDAO

      public void assignDelegateDAO(CicsIndexedFile delegateDAO)
      Indexed files with totally different formats will sometimes still need to go to same database table. Assigning a DelegateDAO causes the delegate class to be used for access to the SQLDatabase. The values are then transfered between "this" class and delegateDAO
      Parameters:
      delegateDAO -
    • processException

      protected int processException(CBLException e)
      constructor
      Parameters:
      owner -
      eibaid - / public CicsPersistence(CicsBaseService owner ,Eibaid eibaid) { super(owner); this.eibaid = eibaid; this.owningCicsService = owner; }
    • processException

      protected int processException(CBLException e, boolean invokeHandler)
      Set appropriate responseCodes, and invoke the conditionHandler
      Parameters:
      e -
      Returns:
    • processException

      protected int processException(CBLException e, boolean invokeHandler, int overridingResponseCode)
      Set appropriate responseCodes, and invoke the conditionHandler
      Parameters:
      e -
      Returns:
    • assignResponseCode

      protected void assignResponseCode(int value)
      Used internally to set the IO operation status-values. Also if a FileStatus field is defined, the system will allocate correct values to it.
      Parameters:
      value - - .. one of ..
    • assignResponseCodeField

      public void assignResponseCodeField(ISMObject status)
    • setResponseCode2

      protected void setResponseCode2(int responseCode2)
      Used internally to set the IO operation status-values.
      Parameters:
      value - - .. one of ..
    • setEibFunction

      protected void setEibFunction(String value)
      Used internally to set the IO operation status-values. Also if a FileStatus field is defined, the system will allocate correct values to it.
      Parameters:
      value - - .. one of ..
    • getResponseCode

      public int getResponseCode()
      Used internally to set the IO operation status-values. Also if a FileStatus field is defined, the system will allocate correct values to it.
      Returns:
      - the status value .. one of ACMBasePersistent.STATUS_xxxx
    • getResponse2Code

      public int getResponse2Code()
    • _assignKeyValue

      protected static void _assignKeyValue(CicsIndexedFile me, String value)
    • assignKeyValue

      public void assignKeyValue(AbstractDataObject keyValueField)
      updates the value of Record-Keys defined for this class with every read.
      Specified by:
      assignKeyValue in interface ISQLWrapper
    • retrieveRecordKeyValue

      public String retrieveRecordKeyValue()
      Used only used by CicsPersistent Subclasses.
      Specified by:
      retrieveRecordKeyValue in interface ISQLWrapper
      Parameters:
      value -
    • assignFileName

      public void assignFileName(String fileName)
      In Sequential File Processing - it overwrites the default name of an input/output file automatically assigned by the system.
      Overrides:
      assignFileName in class AbstractBasePersistence
      Parameters:
      fileName -
    • seek

      public int seek()
      Translation of CICS STARTBR Opens a data-set/resultset matching the keys. But does not read it.
      Returns:
    • seekRecord

      public int seekRecord() throws IOStatusException
      translation of CICS STARTBR
      Returns:
      Throws:
      IOStatusException
    • seek

      public int seek(CBLBean key, int conditionType)
    • seekRecord

      public int seekRecord(ISMObject key, int conditionType)
      Description copied from class: IndexedFileSingleProcess
      Implements the COBOL START command related to IndexedFileSingleProcess.
      Specified by:
      seekRecord in interface ISQLWrapper
      Overrides:
      seekRecord in class IndexedFileSingleProcess
      Parameters:
      key - -
      conditionType - -
    • read

      public int read()
      Translation of CICS READ Read is usually used to read random organized data. The softwareMining version will issue an SQL statement to read find and read the first record whose value matches the record-Keys
      Specified by:
      read in interface ISQLWrapper
      Overrides:
      read in class AbstractBasePersistence
      Returns:
      when successful it returns IPersistence.STATUS_SUCCESS
    • insert

      public int insert()
      Description copied from class: AbstractBasePersistence
      Insert a record - populate the values from the existing fields
      Specified by:
      insert in interface ISQLWrapper
      Overrides:
      insert in class AbstractBasePersistence
    • update

      public int update()
      Description copied from class: AbstractBasePersistence
      Update the current record with the current record structure. If at end of file is reached, it does not throw an exception
      Specified by:
      update in interface ISQLWrapper
      Overrides:
      update in class AbstractBasePersistence
    • delete

      public int delete()
      Description copied from class: AbstractBasePersistence
      equivalent of COBOL delete (for VSAM).
      Specified by:
      delete in interface ISQLWrapper
      Overrides:
      delete in class AbstractBasePersistence
    • insertRecord

      public int insertRecord() throws IOStatusException
      similar to insert(). But to be used when no RESPONSE CODE field is utilised. On any problems - it invokes the pre-defined condition handlers
      Overrides:
      insertRecord in class IndexedFileSingleProcess
      Returns:
      when successful it returns IPersistence.STATUS_SUCCESS
      Throws:
      IOStatusException
    • readRecord

      public int readRecord() throws IOStatusException
      to be removed - CICS subsystem does not call this - see 0011729 similar to readNext(). But to be used when no RESPONSE CODE field is utilised. On any problems - it invokes the pre-defined condition handlers
      Overrides:
      readRecord in class IndexedFileSingleProcess
      Returns:
      true on success otherwise, false
      Throws:
      IOStatusException
    • updateRecord

      public int updateRecord() throws IOStatusException
      similar to update(). But to be used when no RESPONSE CODE field is utilised. On any problems - it invokes the pre-defined condition handlers
      Overrides:
      updateRecord in class IndexedFileSingleProcess
      Returns:
      when successful it returns IPersistence.STATUS_SUCCESS
      Throws:
      IOStatusException
    • deleteRecord

      public int deleteRecord() throws IOStatusException
      similar to clear(). But to be used when no RESPONSE CODE field is utilised. On any problems - it invokes the pre-defined condition handlers
      Overrides:
      deleteRecord in class IndexedFileSingleProcess
      Returns:
      true on success otherwise, false
      Throws:
      IOStatusException
    • clearRecord

      public void clearRecord() throws IOStatusException
      Delete all records . But to be used when no RESPONSE CODE field is utilised. On any problems - it invokes the pre-defined condition handlers
      Throws:
      IOStatusException
    • nextRecord

      public int nextRecord() throws IOStatusException
      Description copied from class: IndexedFileSingleProcess
      Reads the next record into memory. If the file access mode is SEQUENTIAL or DYNAMIC then records are navigated sequentially. Otherwise the records that have an index greater than or equal to the keyValue value are filtered and each record is Read into memory on each call.
      Overrides:
      nextRecord in class IndexedFileSingleProcess
      Returns:
      true on success otherwise, false
      Throws:
      IOStatusException
    • prevRecord

      public int prevRecord()
      Description copied from class: IndexedFileSingleProcess
      Reads the prev record into memory. If the file access mode is SEQUENTIAL or DYNAMIC then records are navigated sequentially. Otherwise the records that have an index less than or equal to the keyValue value are filtered and each record is Read into memory on each call.
      Overrides:
      prevRecord in class IndexedFileSingleProcess
      Returns:
      true on success otherwise, false
    • close

      public int close()
      Description copied from class: IndexedFileSingleProcess
      Closes the file and writes all the indexed records to the specified file if open mode allows writing.
      Specified by:
      close in interface ISQLWrapper
      Overrides:
      close in class IndexedFileSingleProcess
      Returns:
      0 on success
    • setStorageLength

      public void setStorageLength(int newLength)
      to do ... not implemented
      Parameters:
      newLength -
    • retrieveNativeKeys

      public ISMObject[] retrieveNativeKeys()
      used internally by softwareMining
      Specified by:
      retrieveNativeKeys in interface ISQLWrapper
    • assignRecordKey

      public void assignRecordKey(ISMObject _recordKey)
      Description copied from interface: ISQLWrapper
      Used only used by CicsPersistent Subclasses.
      Specified by:
      assignRecordKey in interface ISQLWrapper
    • assignRecordKeyValue

      public void assignRecordKeyValue(String newValue)
    • restoreNonGenericKey

      public void restoreNonGenericKey()
      After setting a GENERIC-KEY, the original Non-generic-Key has to be restored. This method does that.
    • assignGenericRecordKeyLength

      public void assignGenericRecordKeyLength(int genericKeyLength)
    • assignLock

      public void assignLock(boolean newLocValue)
      Blank method - no functionality is currently deemed to be required
      Overrides:
      assignLock in class IndexedFileSingleProcess
      Parameters:
      newLocValue -
    • validateConditionType

      public int validateConditionType(ISMObject key, int conditionType)
      for internal use only
      Specified by:
      validateConditionType in interface ISQLWrapper
      Parameters:
      conditionType -
      Returns:
    • assignRecordKeyLength

      @Deprecated public void assignRecordKeyLength(int keyLength)
      Deprecated.
      not used / not necessary here
      In CICS: If a specified KEYLENGTH value differs from the length that is defined for the underlying file and the operation is NOT generic , the INVREQ condition occurs.
      Currently in SM Framework, keyLenght are ignored if operation is NOT generic.
    • assignTempStorage

      @Deprecated public void assignTempStorage(ISMObject object)
      Deprecated.
      The following method is the translation of cics read "SET" ...
      THE METHOD IS NOT USED - has no impact. the system uses other heuristics to achieve same results. but the API is generated for safety (SoftwareMining may add functionality at a later stage).
      Parameters:
      object -
    • releaseResources

      public void releaseResources(boolean forceRelease)
      Description copied from interface: ISMBean
      For internal use only - memory management stuff
      Specified by:
      releaseResources in interface ISMBean
      Overrides:
      releaseResources in class CBLBean
      Parameters:
      forceRelease -
    • assignConnection

      public void assignConnection(Connection connection)
      Specified by:
      assignConnection in interface ISQLWrapper
    • retrieveResultSetFetchSize

      public int retrieveResultSetFetchSize()
      Specified by:
      retrieveResultSetFetchSize in interface ISQLWrapper
    • assignResultSetFetchSize

      public void assignResultSetFetchSize(int resultSetFetchSize)
      Specified by:
      assignResultSetFetchSize in interface ISQLWrapper
    • isFileOpened

      public boolean isFileOpened()
      Specified by:
      isFileOpened in interface ISQLWrapper
    • assignFileOpened

      public void assignFileOpened(boolean fileOpened)
      Specified by:
      assignFileOpened in interface ISQLWrapper
    • assignStatus

      public void assignStatus(ISMObject status)
      Description copied from class: AbstractBasePersistence
      set the status object
      Specified by:
      assignStatus in interface ISQLWrapper
      Overrides:
      assignStatus in class AbstractBasePersistence
      Parameters:
      status -
    • retrieveRowFacade

      public RowFacade retrieveRowFacade()
      Specified by:
      retrieveRowFacade in interface ISQLWrapper
    • assignRowFacade

      public void assignRowFacade(RowFacade rowFacade)
      Specified by:
      assignRowFacade in interface ISQLWrapper
    • retrieveDbDecorator

      public ACMDbDecorator retrieveDbDecorator()
      Specified by:
      retrieveDbDecorator in interface ISQLWrapper
    • assignDbDecorator

      public void assignDbDecorator(ACMDbDecorator dbDecorator)
      Specified by:
      assignDbDecorator in interface ISQLWrapper
    • retrieveLastSeekCondition

      public int retrieveLastSeekCondition()
      Specified by:
      retrieveLastSeekCondition in interface ISQLWrapper
    • assignLastSeekCondition

      public void assignLastSeekCondition(int lastSeekCondition)
      Specified by:
      assignLastSeekCondition in interface ISQLWrapper
    • assignOpenMode

      public void assignOpenMode(int openMode)
      Specified by:
      assignOpenMode in interface ISQLWrapper
    • retrieveOpenMode

      public int retrieveOpenMode()
      Specified by:
      retrieveOpenMode in interface ISQLWrapper
      Overrides:
      retrieveOpenMode in class IndexedFileSingleProcess
    • isSequentialKeyGeneration

      public boolean isSequentialKeyGeneration()
      Specified by:
      isSequentialKeyGeneration in interface ISQLWrapper
    • assignSequentialKeyGeneration

      public void assignSequentialKeyGeneration(boolean sequentialKeyGeneration)
      Specified by:
      assignSequentialKeyGeneration in interface ISQLWrapper
    • assignLastSeekConditionLookedForEquality

      public void assignLastSeekConditionLookedForEquality(boolean newValue)
      Specified by:
      assignLastSeekConditionLookedForEquality in interface ISQLWrapper
    • isLastSeekConditionLookedForEquality

      public boolean isLastSeekConditionLookedForEquality()
      Specified by:
      isLastSeekConditionLookedForEquality in interface ISQLWrapper
    • isKeyUnique

      public boolean isKeyUnique()
      Specified by:
      isKeyUnique in interface ISQLWrapper
    • assignKeyIsUnique

      public void assignKeyIsUnique(boolean keyUnique)
      Specified by:
      assignKeyIsUnique in interface ISQLWrapper
    • isSuppressNextReadCurrent

      public boolean isSuppressNextReadCurrent()
      Specified by:
      isSuppressNextReadCurrent in interface ISQLWrapper
    • reduceGEorEQ

      public void reduceGEorEQ(boolean newValue)
      Description copied from interface: ISQLWrapper
      used in AS400 / DB400 to increase speed of searches
      Specified by:
      reduceGEorEQ in interface ISQLWrapper
    • isReduceGEorEQ

      public boolean isReduceGEorEQ()
      Description copied from interface: ISQLWrapper
      used in AS400 / DB400 to increase speed of searches
      Specified by:
      isReduceGEorEQ in interface ISQLWrapper
    • isAllowedToExpandGTEQSearches

      public boolean isAllowedToExpandGTEQSearches()
      Description copied from interface: ISQLWrapper
      internal use only. Example: Lets say there are 3 key fields involved in a search with condition GTEQ
      If flag is set to true (default) - then the following SQL condition will be generated
      (A > ? or (A = ? and B > ?) or (A = ? and B = ? and C >= ?))
      With flag is set to FALSE - the following will be generated
      (A >= ?) and (B >= ?) and (C >= ?)
      Specified by:
      isAllowedToExpandGTEQSearches in interface ISQLWrapper
    • assignExpandGTEQSearches

      public void assignExpandGTEQSearches(boolean expandGTEQSearches)
      Description copied from interface: ISQLWrapper
      (default is true) Example: Lets say there are 3 key fields involved in a search with condition GTEQ
      If flag is set to true (default) - then the following SQL condition will be generated
      (A > ? or (A = ? and B > ?) or (A = ? and B = ? and C >= ?))
      With flag is set to FALSE - the following will be generated
      (A >= ?) and (B >= ?) and (C >= ?)
      Specified by:
      assignExpandGTEQSearches in interface ISQLWrapper
    • assignLowerLimitForExpandGTEQSearches

      public void assignLowerLimitForExpandGTEQSearches(int range)
      Description copied from interface: ISQLWrapper
      (default is -1 - disabled) Only works when assignExpandGTEQSearches(true);
      Example: Lets say there are 3 key fields involved in a search with condition GTEQ
      In default settings, the following SQL condition will be generated
       SELECT ... FROM ... WHERE
           (A > ?)
        or (A = ? and B > ?) 
        or (A = ? and B = ? and C >= ?)) 

      using the statement assignLowerLimitForExpandGTEQSearches( 3 ) - the key conditions below position 3 are ignored, and only the following is generated.
       SELECT ... FROM ... WHERE
             (A = ? and B = ? and C >= ?)) 

      and the following proceeding conditions are ignored invalid input: '<'> (A > ?)
      or (A = ? and B > ?)
      Specified by:
      assignLowerLimitForExpandGTEQSearches in interface ISQLWrapper
    • retreiveLowerLimitForExpandGTEQSearches

      public int retreiveLowerLimitForExpandGTEQSearches()
      Specified by:
      retreiveLowerLimitForExpandGTEQSearches in interface ISQLWrapper
    • assignUpperLimitForExpandGTEQSearches

      public void assignUpperLimitForExpandGTEQSearches(int range)
      Description copied from interface: ISQLWrapper
      (default is -1 - disabled) Only works when assignExpandGTEQSearches(true);
      Example: Lets say there are 3 key fields involved in a search with condition GTEQ
      In default settings, the following SQL condition will be generated
       SELECT ... FROM ... WHERE
           (A > ?)
        or (A = ? and B > ?) 
        or (A = ? and B = ? and C >= ?)) 

      but if assignUpperLimitForExpandGTEQSearches( 1 ) - only conditions up to 1st Key will be generated
      ie The following will be generated
       SELECT ... FROM ... WHERE 
          (A > ?) 

      and the following conditions will NOT be generated (A = ? and B > ?) or (A = ? and B = ? and C >= ?))
      Specified by:
      assignUpperLimitForExpandGTEQSearches in interface ISQLWrapper
    • retreiveUpperLimitForExpandGTEQSearches

      public int retreiveUpperLimitForExpandGTEQSearches()
      Specified by:
      retreiveUpperLimitForExpandGTEQSearches in interface ISQLWrapper
    • isChangeGEConditonToLIKE

      public boolean isChangeGEConditonToLIKE()
      Description copied from interface: ISQLWrapper
      The system can replace GE searches to LIKE statements. this can potentially have a huge performance improvement.
      E.g. Consider generating SELECT ... from TABLE WHERE KEY_1 >= ? AND KEY_2 >= ?.
      If each key is 5 chars, and the supplied values are "A " and "B " - the above translates to:
       SELECT ... from TABLE WHERE KEY_1 >= 'A    ' AND KEY_2 >= 'B    '. 

      Converting it to LIKE will become
       SELECT ... from TABLE WHERE KEY_1 LIKE 'A%' AND KEY_2 LIKE 'B%' 
      This makes a significant performance improvements.
      Specified by:
      isChangeGEConditonToLIKE in interface ISQLWrapper
    • assignChangeGEConditonToLIKE

      public void assignChangeGEConditonToLIKE(boolean newValue)
      Description copied from interface: ISQLWrapper
      The system can replace GE searches to LIKE statements. this can potentially have a huge performance improvement.
      E.g. Consider generating SELECT ... from TABLE WHERE KEY_1 >= ? AND KEY_2 >= ?.
      If each key is 5 chars, and the supplied values are "A " and "B " - the above translates to:
       SELECT ... from TABLE WHERE KEY_1 >= 'A    ' AND KEY_2 >= 'B    '. 

      Converting it to LIKE will become
       SELECT ... from TABLE WHERE KEY_1 LIKE 'A%' AND KEY_2 LIKE 'B%' 
      This makes a significant performance improvements.
      Specified by:
      assignChangeGEConditonToLIKE in interface ISQLWrapper
    • isChangeGTEQ2EQForLIKECondition

      public boolean isChangeGTEQ2EQForLIKECondition()
      Description copied from interface: ISQLWrapper
      For internal Use only.
      Only applies when OR_CHANGE_GE_CONDITION_TO_LIKE__DEFAULT=true
      E.g. Consider generating SELECT ... from TABLE WHERE KEY_1 >= ? AND KEY_2 >= ?.
      If each key is 5 chars, and the supplied values are "ABCDE" and "B " - the above translates to:
       SELECT ... from TABLE WHERE KEY_1 >= 'ABCDE' AND KEY_2 >= 'B    '. 

      Converting it to LIKE will become
       SELECT ... from TABLE WHERE KEY_1 >= 'ABCDE' AND KEY_2 LIKE 'B%' 

      When this flag is set, if the char-count of a field is equal to that of the supplied value, then the generated SQL will become
       SELECT ... from TABLE WHERE KEY_1 = 'ABCDE' AND KEY_2 LIKE 'B%' 
      This can make a significant improvement to performance .
      Specified by:
      isChangeGTEQ2EQForLIKECondition in interface ISQLWrapper
    • assignChangeGTEQ2EQForLIKECondition

      public void assignChangeGTEQ2EQForLIKECondition(boolean useEQForExactLenghtMatch)
      Description copied from interface: ISQLWrapper
      Only applies when OR_CHANGE_GE_CONDITION_TO_LIKE__DEFAULT=true
      E.g. Consider generating SELECT ... from TABLE WHERE KEY_1 >= ? AND KEY_2 >= ?.
      If each key is 5 chars, and the supplied values are "ABCDE" and "B " - the above translates to:
       SELECT ... from TABLE WHERE KEY_1 >= 'ABCDE' AND KEY_2 >= 'B    '. 

      Converting it to LIKE will become
       SELECT ... from TABLE WHERE KEY_1 >= 'ABCDE' AND KEY_2 LIKE 'B%' 

      When this flag is set, if the char-count of a field is equal to that of the supplied value, then the generated SQL will become
       SELECT ... from TABLE WHERE KEY_1 = 'ABCDE' AND KEY_2 LIKE 'B%' 
      This can make a significant improvement to performance .
      Specified by:
      assignChangeGTEQ2EQForLIKECondition in interface ISQLWrapper
    • assignTopRowSelectStrategyCount

      public void assignTopRowSelectStrategyCount(int count)
      Description copied from interface: ISQLWrapper
      (Default = -1) When set to 0 or 1 , the Object-Relation SQL Generator will produce:
                        SELECT � FROM table WHERE condition-1 
      When set to greater than 1 - (for Oracle) it will produce:
        SELECT ... FROM ( SELECT � FROM table WHERE condition-1 ) WHERE ROWNUM <OR_SELECT_TOP_ROW__DEFAULT; 
      Specified by:
      assignTopRowSelectStrategyCount in interface ISQLWrapper
    • retrieveTopRowSelectStrategyCount

      public int retrieveTopRowSelectStrategyCount()
      Description copied from interface: ISQLWrapper
      For internal use only (Default = -1) When set to 0 or 1 , the Object-Relation SQL Generator will produce:
                        SELECT ... FROM table WHERE condition-1 
      When set to greater than 1 - (for Oracle) it will produce:
        SELECT ... FROM ( SELECT ... FROM table WHERE condition-1 ) WHERE ROWNUM <OR_SELECT_TOP_ROW__DEFAULT; 
      Specified by:
      retrieveTopRowSelectStrategyCount in interface ISQLWrapper
    • retrieveTopRowSelectStrategyStartingRow

      public int retrieveTopRowSelectStrategyStartingRow()
      Description copied from interface: ISQLWrapper
      for internal use only
      Specified by:
      retrieveTopRowSelectStrategyStartingRow in interface ISQLWrapper
    • assignTopRowSelectStrategyRange

      public void assignTopRowSelectStrategyRange(int startRowNumber, int count)
      Description copied from interface: ISQLWrapper
      Similar to assignTopRowSelectStrategyCount - but aslso defines starting points
      Specified by:
      assignTopRowSelectStrategyRange in interface ISQLWrapper
      Parameters:
      startRowNumber -
      count -
    • assignGenerate_OrderBy_ForReadStatements

      public void assignGenerate_OrderBy_ForReadStatements(boolean enabled)
      Description copied from interface: ISQLWrapper
      READ() statement on DB tables with MANY rows, issues an ORDER BY on the SELECT which may have a big performance impact. If the data was populated sequentially, then the ORDER BY may not be strictly required, and may be removed.
      Specified by:
      assignGenerate_OrderBy_ForReadStatements in interface ISQLWrapper
    • retrieveGenerate_OrderBy_ForReadStatements

      public boolean retrieveGenerate_OrderBy_ForReadStatements()
      Description copied from interface: ISQLWrapper
      for internal use
      Specified by:
      retrieveGenerate_OrderBy_ForReadStatements in interface ISQLWrapper
    • assignIgnoreOriginalKeys

      public void assignIgnoreOriginalKeys(boolean newValue)
      Description copied from interface: ISQLWrapper
      for internal use
      Specified by:
      assignIgnoreOriginalKeys in interface ISQLWrapper
      Parameters:
      newValue -
    • isIgnoreOriginalKeys

      public boolean isIgnoreOriginalKeys()
      Specified by:
      isIgnoreOriginalKeys in interface ISQLWrapper
    • assignCachedSeekValues

      public void assignCachedSeekValues(List objects)
      Specified by:
      assignCachedSeekValues in interface ISQLWrapper
    • retrieveCachedSeekValues

      public List retrieveCachedSeekValues()
      Specified by:
      retrieveCachedSeekValues in interface ISQLWrapper
    • seekRecord

      public int seekRecord(ISMObject[] keys, int conditionType) throws IOStatusException
      Specified by:
      seekRecord in interface ISQLWrapper
      Throws:
      IOStatusException
    • assignGDGProperty

      public void assignGDGProperty(String gdgProperty)
      Description copied from interface: ISQLWrapper
      Additional SQL statement to be read from gdg.properties file. E.g. assignGDGProperty("GDG1"); If gdg.properties file contains: GDG1=AND GDG_YEAR=2012 Then the above search condition will be appended to any SQL statements issued reading this class
      Specified by:
      assignGDGProperty in interface ISQLWrapper
    • assignGDGCondition

      public void assignGDGCondition(String gdgCondition)
      Description copied from interface: ISQLWrapper
      Additional SQL statement to be read from gdg.properties file. E.g. assignGDGCondition("GDG_YEAR = 2013"); Then the above search condition will be appended to any SQL statements issued reading this class.
      Specified by:
      assignGDGCondition in interface ISQLWrapper
    • isSeekSuppressed

      public boolean isSeekSuppressed()
      Description copied from interface: ISQLWrapper
      for internal use only - For VSAM SEEK / READ / ... VSAM apps need to throw InvalidKeyException (even if they use CICS delegates), but CICS applications need to throw KeyNotFoundException ,
      Specified by:
      isSeekSuppressed in interface ISQLWrapper
      Returns:
    • assignSuppressSeek

      public void assignSuppressSeek(boolean newValue)
      Description copied from interface: ISQLWrapper
      for internal use only - For VSAM SEEK / READ / ... VSAM apps need to throw InvalidKeyException (even if they use CICS delegates), but CICS applications need to throw KeyNotFoundException ,
      Specified by:
      assignSuppressSeek in interface ISQLWrapper
    • retrieveAdditionalSQLOrderBy

      public StringBuilder retrieveAdditionalSQLOrderBy()
      Specified by:
      retrieveAdditionalSQLOrderBy in interface ISQLWrapper
    • retrieveAdditionalSQLCondition

      public StringBuilder retrieveAdditionalSQLCondition()
      Specified by:
      retrieveAdditionalSQLCondition in interface ISQLWrapper
    • assignResultSet

      public void assignResultSet(ResultSet resultSet)
      Specified by:
      assignResultSet in interface ISQLWrapper
    • retrieveResultSet

      public ResultSet retrieveResultSet()
      Specified by:
      retrieveResultSet in interface ISQLWrapper
    • isKept

      public boolean isKept()
      Specified by:
      isKept in interface ISQLWrapper
    • setLock

      public void setLock(boolean newValue)
      Specified by:
      setLock in interface ISQLWrapper
    • unlock

      public void unlock()
      Specified by:
      unlock in interface ISQLWrapper
    • useOidTableForKeyGeneration

      public boolean useOidTableForKeyGeneration()
      Specified by:
      useOidTableForKeyGeneration in interface ISQLWrapper
    • assignDelegateDAO

      public void assignDelegateDAO(ISQLWrapper delegateDAO)
      Specified by:
      assignDelegateDAO in interface ISQLWrapper
    • retrieveDelegateDAO

      public ISQLWrapper retrieveDelegateDAO()
      Specified by:
      retrieveDelegateDAO in interface ISQLWrapper
    • retrieveConnection

      public Connection retrieveConnection()
      Specified by:
      retrieveConnection in interface ISQLWrapper
    • assignFetchDirectionIsForward

      public void assignFetchDirectionIsForward(Boolean direction)
      Specified by:
      assignFetchDirectionIsForward in interface ISQLWrapper
    • isFetchDirectionForward

      public boolean isFetchDirectionForward()
      Specified by:
      isFetchDirectionForward in interface ISQLWrapper
    • isFetchDirectionBackward

      public boolean isFetchDirectionBackward()
      Specified by:
      isFetchDirectionBackward in interface ISQLWrapper
    • assignTreatAsSQLWrapper

      public void assignTreatAsSQLWrapper(boolean treatAsSQLWrapper)
      Description copied from interface: ISQLWrapper
      Used only used by CicsPersistent Subclasses. allows CicsPersistent (ILE or other subclasses of this) to be treated as SQLWrapper (Object-relational VSAM Files) by batch programs.
      Specified by:
      assignTreatAsSQLWrapper in interface ISQLWrapper
    • retrieveTableName

      public String retrieveTableName()
      Specified by:
      retrieveTableName in interface ISQLWrapper
    • assignSQLConditions

      public void assignSQLConditions(String condition)
      Description copied from interface: ISQLWrapper

      Ignore the inbuilt KEY (defined by assignRecordKey(...)) - and use this condition instead
      Please note program will be responsible for passing additional parameters.
      e.g. assignSQLConditions("NAME = 'SMITH");
      (or when assignSQLConditions("NAME = ?") - the program should also use the "addSearchParameter" method to provide values
      Specified by:
      assignSQLConditions in interface ISQLWrapper
      Parameters:
      condition -
    • assignAdditionalSQLOrderBy

      public void assignAdditionalSQLOrderBy(String newValue)
      Description copied from interface: ISQLWrapper
      This method allows inserting additional Ordering clauses It is useful in hierarchical tables will define additional SQLConditions - e.g. (INDX_FLD_TABLE_1 ASCENDING)
      Specified by:
      assignAdditionalSQLOrderBy in interface ISQLWrapper
    • retrieveAdditionalSearchParameters

      public List<Object> retrieveAdditionalSearchParameters()
      Description copied from interface: ISQLWrapper
      assignSQLCondition can also have conditions such as "NAME = ?". In that case the program should also use the "addSearchParameter" method to provide values
      Specified by:
      retrieveAdditionalSearchParameters in interface ISQLWrapper
      Returns:
    • retrieveImplicitDatabaseKey

      public ISMObject retrieveImplicitDatabaseKey()
      Description copied from interface: ISQLWrapper
      for internal use only
      Specified by:
      retrieveImplicitDatabaseKey in interface ISQLWrapper
      Returns:
    • assignRecordKey

      public void assignRecordKey(ISMObject[] recordKeys)
      Description copied from interface: ISQLWrapper
      Used only used by CicsPersistent Subclasses.
      Specified by:
      assignRecordKey in interface ISQLWrapper
    • retrieveAscentDescendOrder

      public List<Boolean> retrieveAscentDescendOrder()
      Specified by:
      retrieveAscentDescendOrder in interface ISQLWrapper
    • assignAdditionalSQLConditions

      public void assignAdditionalSQLConditions(String condition)
      Description copied from interface: ISQLWrapper
      This method allows inserting additional conditions - e.g. assignAdditionalSQLConditions( "(COLUMN_2 = 12)"); It is useful in hierarchical tables will define additional SQLConditions - e.g. (INDX_FLD_TABLE_1 = 12), as well as GDG support
      Specified by:
      assignAdditionalSQLConditions in interface ISQLWrapper
      Parameters:
      condition -
    • assignAdditionalSQLConditions

      public void assignAdditionalSQLConditions(StringBuilder condition)
      Description copied from interface: ISQLWrapper
      This method allows inserting additional conditions - e.g. assignAdditionalSQLConditions( "(COLUMN_2 = 12)"); It is useful in hierarchical tables will define additional SQLConditions - e.g. (INDX_FLD_TABLE_1 = 12), as well as GDG support
      Specified by:
      assignAdditionalSQLConditions in interface ISQLWrapper
      Parameters:
      condition -