Interface DataFilter

    • Method Detail

      • filter

        NamedData filter​(NamedData original)
                  throws IOException
        Filter the named data.

        Filtering is often based on suffix. For example a gzip compressed file will have an original name of the form base.ext.gz when the corresponding uncompressed file will have a filtered name base.ext.

        Beware that as the data providers manager will attempt to pile all filters in a stack as long as their implementation of this method returns a value different from the original parameter. This implies that the filter, must perform some checks to see if it must be applied or not. If for example there is a need for a deciphering filter to be applied once to all data, then the filter should for example check for a suffix in the name and create a new filtered NamedData instance only if the suffix is present, removing the suffix from the filtered instance. Failing to do so and simply creating a filtered instance with one deciphering layer without changing the name would result in an infinite stack of deciphering filters being built, until a stack overflow or memory exhaustion exception occurs.

        Parameters:
        original - original named data
        Returns:
        filtered named data, or original if this filter does not apply to this named data
        Throws:
        IOException - if filtered stream cannot be created