Search in sources :

Example 11 with FileStoreKey

use of org.knime.core.data.filestore.FileStoreKey in project knime-core by knime.

the class FileStoresInLoopCache method close.

/**
 * @throws CanceledExecutionException
 */
BufferedDataTable close() throws CanceledExecutionException {
    m_createdFileStoresContainer.close();
    BufferedDataTable table = m_createdFileStoresContainer.getTable();
    m_createdFileStoresContainer = null;
    if (m_keysWereAddedSorted) {
        m_createdFileStoresTable = table;
    } else {
        BufferedDataTableSorter sorter = new BufferedDataTableSorter(table, Collections.singletonList(COL_NAME), new boolean[] { true });
        BufferedDataTable sort = sorter.sort(m_exec.createSilentSubExecutionContext(0.0));
        BufferedDataContainer unique = m_exec.createDataContainer(LOOP_FILE_STORE_SPEC);
        FileStoreKey last = null;
        for (DataRow r : sort) {
            FileStoreKey key = getFileStoreKey(r);
            if (!ConvenienceMethods.areEqual(last, key)) {
                unique.addRowToTable(r);
            }
            last = key;
        }
        unique.close();
        m_exec.clearTable(table);
        m_createdFileStoresTable = unique.getTable();
    }
    return m_createdFileStoresTable;
}
Also used : BufferedDataContainer(org.knime.core.node.BufferedDataContainer) FileStoreKey(org.knime.core.data.filestore.FileStoreKey) BufferedDataTable(org.knime.core.node.BufferedDataTable) BufferedDataTableSorter(org.knime.core.data.sort.BufferedDataTableSorter) DataRow(org.knime.core.data.DataRow)

Example 12 with FileStoreKey

use of org.knime.core.data.filestore.FileStoreKey in project knime-core by knime.

the class FileStoresInLoopCache method next.

private static FileStoreKey next(final RowIterator it, final FileStoreKey previousKey) {
    FileStoreKey newKey;
    // the table may have duplicates, but they are sorted and therefore consecutive.
    do {
        DataRow nextRow = it.hasNext() ? it.next() : null;
        if (nextRow == null) {
            return null;
        }
        newKey = getFileStoreKey(nextRow);
    } while (newKey != null && previousKey != null && newKey.compareTo(previousKey) == 0);
    return newKey;
}
Also used : FileStoreKey(org.knime.core.data.filestore.FileStoreKey) DataRow(org.knime.core.data.DataRow)

Aggregations

FileStoreKey (org.knime.core.data.filestore.FileStoreKey)12 File (java.io.File)4 IOException (java.io.IOException)4 FileStore (org.knime.core.data.filestore.FileStore)4 FileStorePortObject (org.knime.core.data.filestore.FileStorePortObject)4 BufferedInputStream (java.io.BufferedInputStream)2 BufferedOutputStream (java.io.BufferedOutputStream)2 FileOutputStream (java.io.FileOutputStream)2 ArrayList (java.util.ArrayList)2 ZipEntry (java.util.zip.ZipEntry)2 DataRow (org.knime.core.data.DataRow)2 NotInWorkflowWriteFileStoreHandler (org.knime.core.data.filestore.internal.NotInWorkflowWriteFileStoreHandler)2 ReferencedFile (org.knime.core.internal.ReferencedFile)2 PortObjectSerializer (org.knime.core.node.port.PortObject.PortObjectSerializer)2 PortObjectSpecSerializer (org.knime.core.node.port.PortObjectSpec.PortObjectSpecSerializer)2 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 FileInputStream (java.io.FileInputStream)1 OutputStream (java.io.OutputStream)1 UUID (java.util.UUID)1 ZipInputStream (java.util.zip.ZipInputStream)1