/**
   * Get the meta data
   *
   * @param meta
   */
  private void getMeta(MultiMergeJoinMeta meta) {
    StepIOMetaInterface stepIOMeta = meta.getStepIOMeta();
    List<StreamInterface> infoStreams = stepIOMeta.getInfoStreams();
    StreamInterface stream;
    String streamDescription;
    ArrayList<String> inputStepNameList = new ArrayList<String>();
    ArrayList<String> keyList = new ArrayList<String>();
    CCombo wInputStep;
    String inputStepName;
    for (int i = 0; i < wInputStepArray.length; i++) {
      wInputStep = wInputStepArray[i];
      inputStepName = wInputStep.getText();

      if (Const.isEmpty(inputStepName)) {
        continue;
      }

      inputStepNameList.add(inputStepName);
      keyList.add(keyValTextBox[i].getText());

      if (infoStreams.size() < inputStepNameList.size()) {
        streamDescription = BaseMessages.getString(PKG, "MultiMergeJoin.InfoStream.Description");
        stream = new Stream(StreamType.INFO, null, streamDescription, StreamIcon.INFO, null);
        stepIOMeta.addStream(stream);
      }
    }

    int inputStepCount = inputStepNameList.size();
    meta.allocateInputSteps(inputStepCount);
    meta.allocateKeys(inputStepCount);

    String[] inputSteps = meta.getInputSteps();
    String[] keyFields = meta.getKeyFields();
    infoStreams = stepIOMeta.getInfoStreams();
    for (int i = 0; i < inputStepCount; i++) {
      inputStepName = inputStepNameList.get(i);
      inputSteps[i] = inputStepName;
      stream = infoStreams.get(i);
      stream.setStepMeta(transMeta.findStep(inputStepName));
      keyFields[i] = keyList.get(i);
    }

    meta.setJoinType(joinTypeCombo.getText());
  }
  /** Copy information from the meta-data input to the dialog fields. */
  public void getData() {
    String[] inputStepNames = joinMeta.getInputSteps();
    if (inputStepNames != null) {
      String inputStepName;
      String[] keyFields = joinMeta.getKeyFields();
      String keyField;
      for (int i = 0; i < inputStepNames.length; i++) {
        inputStepName = Const.NVL(inputStepNames[i], "");
        wInputStepArray[i].setText(inputStepName);

        keyField = Const.NVL(keyFields[i], "");
        keyValTextBox[i].setText(keyField);
      }

      String joinType = joinMeta.getJoinType();
      if (joinType != null && joinType.length() > 0) {
        joinTypeCombo.setText(joinType);
      } else {
        joinTypeCombo.setText(MultiMergeJoinMeta.join_types[0]);
      }
    }
    wStepname.selectAll();
    wStepname.setFocus();
  }