All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gov.loc.repository.bagit.writer.impl.AbstractWriter Maven / Gradle / Ivy

Go to download

The BAGIT LIBRARY is a software library intended to support the creation, manipulation, and validation of bags. Its current version is 0.97. It is version aware with the earliest supported version being 0.93.

There is a newer version: 5.2.0
Show newest version
package gov.loc.repository.bagit.writer.impl;

import java.io.File;
import java.util.ArrayList;

import gov.loc.repository.bagit.BagFactory;
import gov.loc.repository.bagit.ProgressListener;
import gov.loc.repository.bagit.Bag.Format;
import gov.loc.repository.bagit.impl.AbstractBagVisitor;
import gov.loc.repository.bagit.utilities.TempFileHelper;
import gov.loc.repository.bagit.writer.Writer;

public abstract class AbstractWriter extends AbstractBagVisitor implements Writer {

	private ArrayList progressListeners = new ArrayList();
	protected BagFactory bagFactory;
	
	public AbstractWriter(BagFactory bagFactory) {
		this.bagFactory = bagFactory;
	}
	
	@Override
	public void addProgressListener(ProgressListener progressListener) {
		this.progressListeners.add(progressListener);
	}

	@Override
	public void removeProgressListener(ProgressListener progressListener) {
		this.progressListeners.remove(progressListener);
	}
	
	protected void progress(String activity, String item, long count, long total)
	{
		for (ProgressListener listener : this.progressListeners)
		{
			listener.reportProgress(activity, item, count, total);
		}
	}

	protected File getTempFile(File file) {
		return TempFileHelper.getTempFile(file);
	}

	protected abstract Format getFormat();
	
	protected void switchTemp(File file) {
		TempFileHelper.switchTemp(file);

	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy