This commit is contained in:
Paul Schaub 2022-03-11 14:06:42 +01:00
parent 9efcae77de
commit dec37c4706
Signed by: vanitasvitae
GPG key ID: 62BEE9264BF17311
14 changed files with 98 additions and 49 deletions

View file

@ -4,13 +4,13 @@
package pgp.cert_d;
import pgp.certificate_store.CertificateReaderBackend;
import pgp.certificate_store.MergeCallback;
import pgp.CertificateMerger;
import pgp.CertificateReader;
public abstract class BackendProvider {
public abstract CertificateReaderBackend provideCertificateReaderBackend();
public abstract CertificateReader provideCertificateReaderBackend();
public abstract MergeCallback provideDefaultMergeCallback();
public abstract CertificateMerger provideDefaultMergeCallback();
}

View file

@ -4,10 +4,10 @@
package pgp.cert_d;
import pgp.Certificate;
import pgp.CertificateMerger;
import pgp.certificate_store.exception.BadDataException;
import pgp.certificate_store.exception.BadNameException;
import pgp.certificate_store.Certificate;
import pgp.certificate_store.MergeCallback;
import java.io.IOException;
import java.io.InputStream;
@ -127,7 +127,7 @@ public class CachingSharedPGPCertificateDirectoryWrapper
}
@Override
public Certificate insert(InputStream data, MergeCallback merge)
public Certificate insert(InputStream data, CertificateMerger merge)
throws IOException, BadDataException, InterruptedException {
Certificate certificate = underlyingCertificateDirectory.insert(data, merge);
remember(certificate.getFingerprint(), certificate);
@ -135,7 +135,7 @@ public class CachingSharedPGPCertificateDirectoryWrapper
}
@Override
public Certificate tryInsert(InputStream data, MergeCallback merge)
public Certificate tryInsert(InputStream data, CertificateMerger merge)
throws IOException, BadDataException {
Certificate certificate = underlyingCertificateDirectory.tryInsert(data, merge);
if (certificate != null) {
@ -145,7 +145,7 @@ public class CachingSharedPGPCertificateDirectoryWrapper
}
@Override
public Certificate insertWithSpecialName(String specialName, InputStream data, MergeCallback merge)
public Certificate insertWithSpecialName(String specialName, InputStream data, CertificateMerger merge)
throws IOException, BadDataException, BadNameException, InterruptedException {
Certificate certificate = underlyingCertificateDirectory.insertWithSpecialName(specialName, data, merge);
remember(specialName, certificate);
@ -153,7 +153,7 @@ public class CachingSharedPGPCertificateDirectoryWrapper
}
@Override
public Certificate tryInsertWithSpecialName(String specialName, InputStream data, MergeCallback merge)
public Certificate tryInsertWithSpecialName(String specialName, InputStream data, CertificateMerger merge)
throws IOException, BadDataException, BadNameException {
Certificate certificate = underlyingCertificateDirectory.tryInsertWithSpecialName(specialName, data, merge);
if (certificate != null) {

View file

@ -4,15 +4,15 @@
package pgp.cert_d;
import pgp.Certificate;
import pgp.CertificateMerger;
import pgp.certificate_store.exception.BadDataException;
import pgp.certificate_store.exception.BadNameException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import pgp.certificate_store.exception.BadDataException;
import pgp.certificate_store.exception.BadNameException;
import pgp.certificate_store.Certificate;
import pgp.certificate_store.MergeCallback;
public interface SharedPGPCertificateDirectory {
LockingMechanism getLock();
@ -29,16 +29,16 @@ public interface SharedPGPCertificateDirectory {
Certificate getBySpecialNameIfChanged(String specialName, String tag)
throws IOException, BadNameException, BadDataException;
Certificate insert(InputStream data, MergeCallback merge)
Certificate insert(InputStream data, CertificateMerger merge)
throws IOException, BadDataException, InterruptedException;
Certificate tryInsert(InputStream data, MergeCallback merge)
Certificate tryInsert(InputStream data, CertificateMerger merge)
throws IOException, BadDataException;
Certificate insertWithSpecialName(String specialName, InputStream data, MergeCallback merge)
Certificate insertWithSpecialName(String specialName, InputStream data, CertificateMerger merge)
throws IOException, BadDataException, BadNameException, InterruptedException;
Certificate tryInsertWithSpecialName(String specialName, InputStream data, MergeCallback merge)
Certificate tryInsertWithSpecialName(String specialName, InputStream data, CertificateMerger merge)
throws IOException, BadDataException, BadNameException;
Iterator<Certificate> items();

View file

@ -16,32 +16,32 @@ import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import pgp.Certificate;
import pgp.CertificateMerger;
import pgp.CertificateReader;
import pgp.certificate_store.exception.BadDataException;
import pgp.certificate_store.exception.BadNameException;
import pgp.certificate_store.exception.NotAStoreException;
import pgp.certificate_store.Certificate;
import pgp.certificate_store.CertificateReaderBackend;
import pgp.certificate_store.MergeCallback;
public class SharedPGPCertificateDirectoryImpl implements SharedPGPCertificateDirectory {
private final FilenameResolver resolver;
private final LockingMechanism writeLock;
private final CertificateReaderBackend certificateReaderBackend;
private final CertificateReader certificateReaderBackend;
public SharedPGPCertificateDirectoryImpl(BackendProvider backendProvider)
throws NotAStoreException {
this(backendProvider.provideCertificateReaderBackend());
}
public SharedPGPCertificateDirectoryImpl(CertificateReaderBackend certificateReaderBackend)
public SharedPGPCertificateDirectoryImpl(CertificateReader certificateReaderBackend)
throws NotAStoreException {
this(
BaseDirectoryProvider.getDefaultBaseDir(),
certificateReaderBackend);
}
public SharedPGPCertificateDirectoryImpl(File baseDirectory, CertificateReaderBackend certificateReaderBackend)
public SharedPGPCertificateDirectoryImpl(File baseDirectory, CertificateReader certificateReaderBackend)
throws NotAStoreException {
this(
certificateReaderBackend,
@ -50,7 +50,7 @@ public class SharedPGPCertificateDirectoryImpl implements SharedPGPCertificateDi
}
public SharedPGPCertificateDirectoryImpl(
CertificateReaderBackend certificateReaderBackend,
CertificateReader certificateReaderBackend,
FilenameResolver filenameResolver,
LockingMechanism writeLock)
throws NotAStoreException {
@ -131,7 +131,7 @@ public class SharedPGPCertificateDirectoryImpl implements SharedPGPCertificateDi
}
@Override
public Certificate insert(InputStream data, MergeCallback merge)
public Certificate insert(InputStream data, CertificateMerger merge)
throws IOException, BadDataException, InterruptedException {
writeLock.lockDirectory();
@ -142,7 +142,7 @@ public class SharedPGPCertificateDirectoryImpl implements SharedPGPCertificateDi
}
@Override
public Certificate tryInsert(InputStream data, MergeCallback merge)
public Certificate tryInsert(InputStream data, CertificateMerger merge)
throws IOException, BadDataException {
if (!writeLock.tryLockDirectory()) {
return null;
@ -154,7 +154,7 @@ public class SharedPGPCertificateDirectoryImpl implements SharedPGPCertificateDi
return certificate;
}
private Certificate _insert(InputStream data, MergeCallback merge)
private Certificate _insert(InputStream data, CertificateMerger merge)
throws IOException, BadDataException {
Certificate newCertificate = certificateReaderBackend.readCertificate(data);
Certificate existingCertificate;
@ -196,7 +196,7 @@ public class SharedPGPCertificateDirectoryImpl implements SharedPGPCertificateDi
}
@Override
public Certificate insertWithSpecialName(String specialName, InputStream data, MergeCallback merge)
public Certificate insertWithSpecialName(String specialName, InputStream data, CertificateMerger merge)
throws IOException, BadNameException, BadDataException, InterruptedException {
writeLock.lockDirectory();
@ -207,7 +207,7 @@ public class SharedPGPCertificateDirectoryImpl implements SharedPGPCertificateDi
}
@Override
public Certificate tryInsertWithSpecialName(String specialName, InputStream data, MergeCallback merge)
public Certificate tryInsertWithSpecialName(String specialName, InputStream data, CertificateMerger merge)
throws IOException, BadNameException, BadDataException {
if (!writeLock.tryLockDirectory()) {
return null;
@ -219,7 +219,7 @@ public class SharedPGPCertificateDirectoryImpl implements SharedPGPCertificateDi
return certificate;
}
private Certificate _insertSpecial(String specialName, InputStream data, MergeCallback merge)
private Certificate _insertSpecial(String specialName, InputStream data, CertificateMerger merge)
throws IOException, BadNameException, BadDataException {
Certificate newCertificate = certificateReaderBackend.readCertificate(data);
Certificate existingCertificate = getBySpecialName(specialName);