summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/connectors/src/data/io/ldap/LDAPFlatDataWriter.java24
-rw-r--r--src/core/src/data/io/AbstractMVDataWriter.java70
-rw-r--r--src/core/src/data/io/MVDataReadWriterPair.java11
-rw-r--r--src/core/src/data/io/stub/StubDataWriter.java17
4 files changed, 48 insertions, 74 deletions
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 <ludovic@pouzenc.fr>
- *
- * 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 <http://www.gnu.org/licenses/>
- */
-
-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<String> 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;
+
+ }
+
}