class TransformationOperation extends TransformationUtility<T> {

    protected final File getOrCreateReadFile(File transformedAppFolder, TransformationContext transformationContext) throws IOException {
        if (readFile == null) {
            File originalFile = getAbsoluteFile(transformedAppFolder, transformationContext);
            if (!originalFile.exists()) {
                throw new IOException("Specified file does not exist: " + originalFile.getAbsolutePath());
            }
            if (originalFile.isDirectory()) {
                throw new IOException("Specified file is a directory: " + originalFile.getAbsolutePath());
            }
            readFile = File.createTempFile(READ_FILE_PREFIX, null);
            FileUtils.copyFile(originalFile, readFile);
            readFile.setReadOnly();
        }

        return readFile;
    }

    public  TransformationOperation();

}