code: @Override
    public byte[] transformIn(byte[] inBytes) throws CpoException {
  
      byte[] buffBytes = new byte[1024];
      byte[] retBytes = null;
      int length;
      ByteArrayOutputStream bos = new ByteArrayOutputStream();
  
      if (inBytes != null) {
  
        if (inBytes.length > 0) {
          try {
            InputStream bis = new ByteArrayInputStream(inBytes);
            GZIPInputStream gzis = new GZIPInputStream(bis);
  
            while ((length = gzis.read(buffBytes)) != -1) {
              bos.write(buffBytes, 0, length);
            }
            bos.flush();
            bos.close();
            gzis.close();
            bis.close();
            retBytes = bos.toByteArray();
          } catch (Exception e) {
            logger.error("Error in transform GZipBytes", e);
            throw new CpoException(e);
          }
        } else {
          retBytes = new byte[0];
        }
      }
      return retBytes;
    }
docs: Transforms the datasource object into an object required by the class
  
  @param cpoAdapter The CpoAdapter for the datasource where the attribute is being retrieved
  @param parentObject The object that contains the attribute being retrieved.
  @param The object that represents the datasource object being retrieved
  @return The object to be stored in the attribute
  @throws CpoException