From 98f8e1c8227621b0a960ed7f7b24f5a34825ddd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Henning?= <soeren.henning@email.uni-kiel.de> Date: Sat, 19 Feb 2022 17:18:10 +0100 Subject: [PATCH] Fix QA warnings --- .../src/main/java/application/GenericSink.java | 14 ++++++++++++-- .../src/main/java/application/SinkFactory.java | 6 +++++- .../src/main/java/application/SinkType.java | 9 ++++++++- .../java/application/firestore/DocumentMapper.java | 5 +++-- .../application/firestore/FirestoreConfig.java | 4 ++-- .../java/application/firestore/FirestoreSink.java | 13 ++++++++++--- 6 files changed, 40 insertions(+), 11 deletions(-) diff --git a/theodolite-benchmarks/uc1-beam/src/main/java/application/GenericSink.java b/theodolite-benchmarks/uc1-beam/src/main/java/application/GenericSink.java index 8e3dbb3f9..04b47cd8c 100644 --- a/theodolite-benchmarks/uc1-beam/src/main/java/application/GenericSink.java +++ b/theodolite-benchmarks/uc1-beam/src/main/java/application/GenericSink.java @@ -7,6 +7,11 @@ import org.apache.beam.sdk.values.PCollection; import rocks.theodolite.benchmarks.uc1.commons.DatabaseAdapter; import titan.ccp.model.records.ActivePowerRecord; +/** + * A {@link PTransform} for a generic {@link DatabaseAdapter}. + * + * @param <T> Type parameter of {@link DatabaseAdapter}. + */ public class GenericSink<T> extends PTransform<PCollection<ActivePowerRecord>, PCollection<?>> { private static final long serialVersionUID = 1L; @@ -14,13 +19,18 @@ public class GenericSink<T> extends PTransform<PCollection<ActivePowerRecord>, P private final DatabaseAdapter<T> databaseAdapter; private final Class<T> type; - public GenericSink(DatabaseAdapter<T> databaseAdapter, Class<T> type) { + /** + * Create a {@link GenericSink} for the provided {@link DatabaseAdapter}. Requires also the + * corresponding {@link Class} object for Beam. + */ + public GenericSink(final DatabaseAdapter<T> databaseAdapter, final Class<T> type) { + super(); this.databaseAdapter = databaseAdapter; this.type = type; } @Override - public PCollection<?> expand(PCollection<ActivePowerRecord> activePowerRecords) { + public PCollection<?> expand(final PCollection<ActivePowerRecord> activePowerRecords) { return activePowerRecords .apply(MapElements .via(new ConverterAdapter<>(this.databaseAdapter.getRecordConverter(), this.type))) diff --git a/theodolite-benchmarks/uc1-beam/src/main/java/application/SinkFactory.java b/theodolite-benchmarks/uc1-beam/src/main/java/application/SinkFactory.java index b3ee54c7c..91052827f 100644 --- a/theodolite-benchmarks/uc1-beam/src/main/java/application/SinkFactory.java +++ b/theodolite-benchmarks/uc1-beam/src/main/java/application/SinkFactory.java @@ -5,8 +5,12 @@ import org.apache.beam.sdk.values.PCollection; import org.apache.commons.configuration2.Configuration; import titan.ccp.model.records.ActivePowerRecord; +/** + * Interface for a class that creates sinks (i.e., {@link PTransform}s that map and store + * {@link ActivePowerRecord}s, optionally, using a {@link Configuration}. + */ public interface SinkFactory { PTransform<PCollection<ActivePowerRecord>, PCollection<?>> create(Configuration configuration); -} \ No newline at end of file +} diff --git a/theodolite-benchmarks/uc1-beam/src/main/java/application/SinkType.java b/theodolite-benchmarks/uc1-beam/src/main/java/application/SinkType.java index a195ecb71..82ca2573e 100644 --- a/theodolite-benchmarks/uc1-beam/src/main/java/application/SinkType.java +++ b/theodolite-benchmarks/uc1-beam/src/main/java/application/SinkType.java @@ -8,6 +8,10 @@ import org.apache.commons.configuration2.Configuration; import rocks.theodolite.benchmarks.uc1.commons.logger.LogWriterFactory; import titan.ccp.model.records.ActivePowerRecord; +/** + * Supported Sink types, i.e., {@link PTransform} for converting and storing + * {@link ActivePowerRecord}s. + */ public enum SinkType implements SinkFactory { LOGGER("logger") { @@ -31,10 +35,13 @@ public enum SinkType implements SinkFactory { this.value = value; } - String getValue() { + public String getValue() { return this.value; } + /** + * Create a new {@link SinkType} from its string representation. + */ public static SinkType from(final String value) { return Stream.of(SinkType.values()) .filter(t -> t.value.equals(value)) diff --git a/theodolite-benchmarks/uc1-beam/src/main/java/application/firestore/DocumentMapper.java b/theodolite-benchmarks/uc1-beam/src/main/java/application/firestore/DocumentMapper.java index 6c7bfa838..ab4617ecd 100644 --- a/theodolite-benchmarks/uc1-beam/src/main/java/application/firestore/DocumentMapper.java +++ b/theodolite-benchmarks/uc1-beam/src/main/java/application/firestore/DocumentMapper.java @@ -14,7 +14,8 @@ final class DocumentMapper extends SimpleFunction<ActivePowerRecord, Document> { private final String collection; - public DocumentMapper(String collection) { + public DocumentMapper(final String collection) { + super(); this.collection = collection; } @@ -30,7 +31,7 @@ final class DocumentMapper extends SimpleFunction<ActivePowerRecord, Document> { .build(); } - private String createDocumentName(String documentId) { + private String createDocumentName(final String documentId) { this.initFirestoreConfig(); return "projects/" + this.firestoreConfig.getProjectId() + "/databases/" + this.firestoreConfig.getDatabaseDdlRequest() diff --git a/theodolite-benchmarks/uc1-beam/src/main/java/application/firestore/FirestoreConfig.java b/theodolite-benchmarks/uc1-beam/src/main/java/application/firestore/FirestoreConfig.java index 790bc5533..eb62d69f9 100644 --- a/theodolite-benchmarks/uc1-beam/src/main/java/application/firestore/FirestoreConfig.java +++ b/theodolite-benchmarks/uc1-beam/src/main/java/application/firestore/FirestoreConfig.java @@ -6,9 +6,9 @@ import java.io.IOException; final class FirestoreConfig { - final FirestoreOptions firestoreOptions; + private final FirestoreOptions firestoreOptions; - private FirestoreConfig(FirestoreOptions firestoreOptions) { + private FirestoreConfig(final FirestoreOptions firestoreOptions) { this.firestoreOptions = firestoreOptions; } diff --git a/theodolite-benchmarks/uc1-beam/src/main/java/application/firestore/FirestoreSink.java b/theodolite-benchmarks/uc1-beam/src/main/java/application/firestore/FirestoreSink.java index 2ae56bcfa..a1db24eeb 100644 --- a/theodolite-benchmarks/uc1-beam/src/main/java/application/firestore/FirestoreSink.java +++ b/theodolite-benchmarks/uc1-beam/src/main/java/application/firestore/FirestoreSink.java @@ -1,5 +1,7 @@ package application.firestore; +import com.google.cloud.firestore.DocumentSnapshot; +import com.google.firestore.v1.Document; import org.apache.beam.sdk.io.gcp.firestore.FirestoreIO; import org.apache.beam.sdk.transforms.MapElements; import org.apache.beam.sdk.transforms.PTransform; @@ -7,6 +9,10 @@ import org.apache.beam.sdk.values.PCollection; import org.apache.commons.configuration2.Configuration; import titan.ccp.model.records.ActivePowerRecord; +/** + * A {@link PTransform} mapping {@link ActivePowerRecord}s to {@link Document}s, followed by storing + * these {@link DocumentSnapshot} to Firestore. + */ public class FirestoreSink extends PTransform<PCollection<ActivePowerRecord>, PCollection<?>> { public static final String SINK_FIRESTORE_COLLECTION_KEY = "sink.firestore.collection"; @@ -15,19 +21,20 @@ public class FirestoreSink extends PTransform<PCollection<ActivePowerRecord>, PC private final String collectionName; - public FirestoreSink(String collectionName) { + public FirestoreSink(final String collectionName) { + super(); this.collectionName = collectionName; } @Override - public PCollection<?> expand(PCollection<ActivePowerRecord> activePowerRecords) { + public PCollection<?> expand(final PCollection<ActivePowerRecord> activePowerRecords) { return activePowerRecords .apply(MapElements.via(new DocumentMapper(this.collectionName))) .apply(MapElements.via(new UpdateOperationMapper())) .apply(FirestoreIO.v1().write().batchWrite().build()); } - public static FirestoreSink fromConfig(Configuration config) { + public static FirestoreSink fromConfig(final Configuration config) { final String collectionName = config.getString(SINK_FIRESTORE_COLLECTION_KEY); return new FirestoreSink(collectionName); } -- GitLab