/FileExtraction/Java_unseen/PowerExplorer_PowerFileExplorer/PowerFileExplorer/src/main/java/net/gnu/mupdf/viewer/MuPDFCancellableTaskDefinition.java
package net.gnu.mupdf.viewer;

import com.artifex.mupdf.fitz.Cookie;

public abstract class MuPDFCancellableTaskDefinition<Params, Result> implements CancellableTaskDefinition<Params, Result> {
	private Cookie cookie;

	public MuPDFCancellableTaskDefinition() {
		this.cookie = new Cookie();
	}

	@Override
	public void doCancel() {
		if (cookie == null)
			return;

		cookie.abort();
	}

	@Override
	public void doCleanup() {
		if (cookie == null)
			return;

		cookie.destroy();
		cookie = null;
	}

	@Override
	public final Result doInBackground(Params ... params) {
		return doInBackground(cookie, params);
	}

	public abstract Result doInBackground(Cookie cookie, Params ... params);
}
