From be6a717ea73730d023e8bcb50d96f4c73abaafa0 Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Thu, 23 Oct 2014 12:31:09 +0200 Subject: Remove useless AbstractMVDataWriter, Add a Pair type for Writers. --- .../src/data/io/ldap/LDAPFlatDataWriter.java | 24 +++++++- src/core/src/data/io/AbstractMVDataWriter.java | 70 ---------------------- src/core/src/data/io/MVDataReadWriterPair.java | 11 ++++ src/core/src/data/io/stub/StubDataWriter.java | 17 +++++- 4 files changed, 48 insertions(+), 74 deletions(-) delete mode 100644 src/core/src/data/io/AbstractMVDataWriter.java create mode 100644 src/core/src/data/io/MVDataReadWriterPair.java diff --git a/src/connectors/src/data/io/ldap/LDAPFlatDataWriter.java b/src/connectors/src/data/io/ldap/LDAPFlatDataWriter.java index d1b8918..ba0f2be 100644 --- a/src/connectors/src/data/io/ldap/LDAPFlatDataWriter.java +++ b/src/connectors/src/data/io/ldap/LDAPFlatDataWriter.java @@ -40,19 +40,24 @@ import com.unboundid.ldap.sdk.schema.EntryValidator; import com.unboundid.ldif.LDIFException; import data.MVDataEntry; -import data.io.AbstractMVDataWriter; +import data.io.MVDataWriter; /** * Stream-oriented LDAP writer from a particular LDAP Directory connection. * * @author lpouzenc */ -public class LDAPFlatDataWriter extends AbstractMVDataWriter { +public class LDAPFlatDataWriter implements MVDataWriter { private final LDAPConnection conn; private final DN baseDN; private final String keyAttr; private final EntryValidator validator; + + /** + * Dry-run mode flag (disabled by default) + */ + protected boolean dryRun; /** * Construct a new writer that could insert/update/delete entries on a particular LDAP connection and baseDN. @@ -67,6 +72,7 @@ public class LDAPFlatDataWriter extends AbstractMVDataWriter { this.baseDN = new DN(baseDN); this.keyAttr = keyAttr; this.validator = new EntryValidator(conn.getSchema()); + this.dryRun = false; } /** @@ -195,4 +201,18 @@ public class LDAPFlatDataWriter extends AbstractMVDataWriter { } } + /* (non-Javadoc) + * @see data.io.MVDataWriter#isDryRun() + */ + public boolean isDryRun() { + return dryRun; + } + + /* (non-Javadoc) + * @see data.io.MVDataWriter#setDryRun(boolean) + */ + public void setDryRun(boolean dryRun) { + this.dryRun = dryRun; + } + } diff --git a/src/core/src/data/io/AbstractMVDataWriter.java b/src/core/src/data/io/AbstractMVDataWriter.java deleted file mode 100644 index 454e8ce..0000000 --- a/src/core/src/data/io/AbstractMVDataWriter.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * SSSync, a Simple and Stupid Synchronizer for data with multi-valued attributes - * Copyright (C) 2014 Ludovic Pouzenc - * - * This file is part of SSSync. - * - * SSSync is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * SSSync is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with SSSync. If not, see - */ - -package data.io; - -import java.util.Set; - -import data.MVDataEntry; - -/** - * Stream-oriented abstract writer from a particular data source. - * All derived writers should honor a dry-run mode. - * - * @author lpouzenc - */ -public abstract class AbstractMVDataWriter implements MVDataWriter { - //TODO : not so useful. Interface extraction was not a good idea ? - - /** - * Dry-run mode flag (disabled by default) - */ - protected boolean dryRun=false; - - /* (non-Javadoc) - * @see data.io.MVDataWriter#isDryRun() - */ - public boolean isDryRun() { - return dryRun; - } - - /* (non-Javadoc) - * @see data.io.MVDataWriter#setDryRun(boolean) - */ - public void setDryRun(boolean dryRun) { - this.dryRun = dryRun; - } - - /* (non-Javadoc) - * @see data.io.MVDataWriter#insert(data.MVDataEntry) - */ - @Override - public abstract void insert(MVDataEntry newEntry) throws Exception; - /* (non-Javadoc) - * @see data.io.MVDataWriter#update(data.MVDataEntry, data.MVDataEntry, java.util.Set) - */ - @Override - public abstract void update(MVDataEntry updatedEntry, MVDataEntry originalEntry, Set attrToUpdate) throws Exception; - /* (non-Javadoc) - * @see data.io.MVDataWriter#delete(data.MVDataEntry) - */ - @Override - public abstract void delete(MVDataEntry existingEntry) throws Exception; -} diff --git a/src/core/src/data/io/MVDataReadWriterPair.java b/src/core/src/data/io/MVDataReadWriterPair.java new file mode 100644 index 0000000..7a4aca8 --- /dev/null +++ b/src/core/src/data/io/MVDataReadWriterPair.java @@ -0,0 +1,11 @@ +package data.io; + +public final class MVDataReadWriterPair { + public final MVDataReader reader; + public final MVDataWriter writer; + + public MVDataReadWriterPair(MVDataReader reader, MVDataWriter writer) { + this.reader = reader; + this.writer = writer; + } +} \ No newline at end of file diff --git a/src/core/src/data/io/stub/StubDataWriter.java b/src/core/src/data/io/stub/StubDataWriter.java index cd08e77..e08fadd 100644 --- a/src/core/src/data/io/stub/StubDataWriter.java +++ b/src/core/src/data/io/stub/StubDataWriter.java @@ -23,14 +23,14 @@ package data.io.stub; import java.util.Set; import data.MVDataEntry; -import data.io.AbstractMVDataWriter; +import data.io.MVDataWriter; /** * Stub writer implementation for automated tests. * * @author lpouzenc */ -public class StubDataWriter extends AbstractMVDataWriter { +public class StubDataWriter implements MVDataWriter { enum OpKind { INSERT, UPDATE, DELETE }; @@ -39,11 +39,13 @@ public class StubDataWriter extends AbstractMVDataWriter { private OpKind opLog[]; private MVDataEntry opData[]; private int cursorLog; + private boolean dryRun; public StubDataWriter(int maxLogEntries) { this.maxLogEntries = maxLogEntries; this.opLog = new OpKind[maxLogEntries]; this.opData = new MVDataEntry[maxLogEntries]; + this.dryRun = false; } @Override @@ -101,4 +103,15 @@ public class StubDataWriter extends AbstractMVDataWriter { return opData.clone(); } + @Override + public boolean isDryRun() { + return dryRun; + } + + @Override + public void setDryRun(boolean dryRun) { + this.dryRun = dryRun; + + } + } -- cgit v1.2.3