Ejemplo n.º 1
0
  private void initBinaryDataFields() throws KettleException {
    try {
      data.hasEncoding = !Const.isEmpty(meta.getEncoding());
      data.binarySeparator = new byte[] {};
      data.binaryEnclosure = new byte[] {};
      data.binaryNewline = new byte[] {};

      if (data.hasEncoding) {
        if (!Const.isEmpty(meta.getSeparator()))
          data.binarySeparator =
              environmentSubstitute(meta.getSeparator()).getBytes(meta.getEncoding());
        if (!Const.isEmpty(meta.getEnclosure()))
          data.binaryEnclosure =
              environmentSubstitute(meta.getEnclosure()).getBytes(meta.getEncoding());
        if (!Const.isEmpty(meta.getNewline()))
          data.binaryNewline = meta.getNewline().getBytes(meta.getEncoding());
      } else {
        if (!Const.isEmpty(meta.getSeparator()))
          data.binarySeparator = environmentSubstitute(meta.getSeparator()).getBytes();
        if (!Const.isEmpty(meta.getEnclosure()))
          data.binaryEnclosure = environmentSubstitute(meta.getEnclosure()).getBytes();
        if (!Const.isEmpty(meta.getNewline()))
          data.binaryNewline = environmentSubstitute(meta.getNewline()).getBytes();
      }

      data.binaryNullValue = new byte[meta.getOutputFields().length][];
      for (int i = 0; i < meta.getOutputFields().length; i++) {
        data.binaryNullValue[i] = null;
        String nullString = meta.getOutputFields()[i].getNullString();
        if (!Const.isEmpty(nullString)) {
          if (data.hasEncoding) {
            data.binaryNullValue[i] = nullString.getBytes(meta.getEncoding());
          } else {
            data.binaryNullValue[i] = nullString.getBytes();
          }
        }
      }
    } catch (Exception e) {
      throw new KettleException("Unexpected error while encoding binary fields", e);
    }
  }