Class EbcdicCcsidManager

java.lang.Object
org.apache.derby.client.net.CcsidManager
org.apache.derby.client.net.EbcdicCcsidManager

class EbcdicCcsidManager extends CcsidManager
A concrete implementation of a CcsidMgr used to convert between Java UCS2 and Ebcdic as needed to handle character DDM Parameters. This implementation only supports converting from the ASCII invariant of UNICODE to Ebcdic. This should be fine since this class is intended for converting DDM Parameter data only.
  • Field Details

    • conversionArrayToEbcdic

      private static final int[] conversionArrayToEbcdic
    • conversionArrayToUCS2

      private static final int[] conversionArrayToUCS2
  • Constructor Details

    • EbcdicCcsidManager

      public EbcdicCcsidManager()
  • Method Details

    • convertFromJavaString

      public byte[] convertFromJavaString(String sourceString, Agent agent) throws SqlException
      Specified by:
      convertFromJavaString in class CcsidManager
      Throws:
      SqlException
    • startEncoding

      public void startEncoding()
      Description copied from class: CcsidManager
      Initialize this instance for encoding a new string. This method resets any internal state that may be left after earlier calls to CcsidManager.encode(java.nio.CharBuffer, java.nio.ByteBuffer, org.apache.derby.client.am.Agent) on this instance. For example, it may reset the internal java.nio.charset.CharsetEncoder, if the implementation uses one to do the encoding.
      Specified by:
      startEncoding in class CcsidManager
    • encode

      public boolean encode(CharBuffer src, ByteBuffer dest, Agent agent) throws SqlException
      Description copied from class: CcsidManager
      Encode the contents of a CharBuffer into a ByteBuffer. The method will return true if all the characters were encoded and copied to the destination. If the receiving byte buffer is too small to hold the entire encoded representation of the character buffer, the method will return false. The caller should then allocate a larger byte buffer, copy the contents from the old byte buffer to the new one, and then call this method again to get the remaining characters encoded.
      Specified by:
      encode in class CcsidManager
      Parameters:
      src - buffer holding the characters to encode
      dest - buffer receiving the encoded bytes
      agent - where to report errors
      Returns:
      true if all characters were encoded, false if the destination buffer is full and there still are more characters to encode
      Throws:
      SqlException - if the characters cannot be encoded using this CCSID manager's character encoding
    • convertToJavaString

      String convertToJavaString(byte[] sourceBytes, int offset, int numToConvert)
      Specified by:
      convertToJavaString in class CcsidManager