/* * Allocate input streams and create the temporary files... * */ @SuppressWarnings("unchecked") public boolean init(StepMetaInterface smi, StepDataInterface sdi) { meta = (JoinRowsMeta) smi; data = (JoinRowsData) sdi; if (super.init(smi, sdi)) { try { // Start with the caching of the data, write later... data.caching = true; // Start at file 1, skip 0 for speed! data.filenr = 1; // See if a main step is supplied: in that case move the corresponding rowset to position 0 for (int i = 0; i < getInputRowSets().size(); i++) { RowSet rs = getInputRowSets().get(i); if (rs.getOriginStepName().equalsIgnoreCase(meta.getMainStepname())) { // swap this one and position 0... // That means, the main stream is always stream 0 --> easy! // RowSet zero = getInputRowSets().get(0); getInputRowSets().set(0, rs); getInputRowSets().set(i, zero); } } // ** INPUT SIDE ** data.file = new File[getInputRowSets().size()]; data.fileInputStream = new FileInputStream[getInputRowSets().size()]; data.dataInputStream = new DataInputStream[getInputRowSets().size()]; data.size = new int[getInputRowSets().size()]; data.fileRowMeta = new RowMetaInterface[getInputRowSets().size()]; data.joinrow = new Object[getInputRowSets().size()][]; data.rs = new RowSet[getInputRowSets().size()]; data.cache = new List[getInputRowSets().size()]; data.position = new int[getInputRowSets().size()]; data.fileOutputStream = new FileOutputStream[getInputRowSets().size()]; data.dataOutputStream = new DataOutputStream[getInputRowSets().size()]; data.restart = new boolean[getInputRowSets().size()]; for (int i = 1; i < getInputRowSets().size(); i++) { String directoryName = environmentSubstitute(meta.getDirectory()); data.file[i] = File.createTempFile(meta.getPrefix(), ".tmp", new File(directoryName)); // $NON-NLS-1$ data.file[i].deleteOnExit(); data.size[i] = 0; data.rs[i] = getInputRowSets().get(i); data.cache[i] = null; // data.row[i] = null; data.position[i] = 0; data.dataInputStream[i] = null; data.dataOutputStream[i] = null; data.joinrow[i] = null; data.restart[i] = false; } return true; } catch (IOException e) { logError( BaseMessages.getString(PKG, "JoinRows.Log.ErrorCreatingTemporaryFiles") + e.toString()); // $NON-NLS-1$ } } return false; }