gov.loc.repository.bagit.writer.impl.AbstractWriter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bagit Show documentation
Show all versions of bagit Show documentation
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.
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);
}
}