Merge branch 'dev'
Change-Id: I7a6ede24163affc30191b6a55d112010baa648ac
diff --git a/build.gradle b/build.gradle
index efda8dc..7fb077a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -15,7 +15,7 @@
description = 'MDM API - Base Model'
group = 'org.eclipse.mdm'
-version = '5.1.0M6'
+version = '5.1.0M7-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'maven'
diff --git a/src/main/java/org/eclipse/mdm/api/base/massdata/ReadRequestBuilder.java b/src/main/java/org/eclipse/mdm/api/base/massdata/ReadRequestBuilder.java
index a1fb3a1..9546bc5 100644
--- a/src/main/java/org/eclipse/mdm/api/base/massdata/ReadRequestBuilder.java
+++ b/src/main/java/org/eclipse/mdm/api/base/massdata/ReadRequestBuilder.java
@@ -111,44 +111,6 @@
}
/**
- * Configures the number of values that will be loaded per {@link Channel}.
- *
- * <p>
- * <b>Note:</b> If the request size is zero, then all available measured values
- * will be loaded for each configured {@link Channel}.
- *
- * @param requestSize The request size.
- * @return This builder is returned.
- * @throws IllegalArgumentException Thrown if the request size is smaller than
- * 0.
- */
- public ReadRequestBuilder requestSize(int requestSize) {
- if (requestSize < 0) {
- throw new IllegalArgumentException(
- "The number of values per channel must be greater or at " + "least equal to 0.");
- }
-
- readRequest.setRequestSize(requestSize);
- return this;
- }
-
- /**
- * Configures the number of values that will be skipped.
- *
- * @param startIndex The start index.
- * @return This builder is returned.
- * @throws IllegalArgumentException Thrown if the start index is smaller than 0.
- */
- public ReadRequestBuilder startIndex(int startIndex) {
- if (startIndex < 0) {
- throw new IllegalArgumentException("The start index must be greater or at least equal to 0.");
- }
-
- readRequest.setStartIndex(startIndex);
- return this;
- }
-
- /**
* Configures the valuesMode.
*
* @param valuesMode {@link ValuesMode} to use for the read request.
@@ -177,6 +139,47 @@
}
/**
+ * Configures the {@link ReadRequest} to load the specified number of values for
+ * each {@link Channel}. this is a terminal operation returning the built
+ * {@link ReadRequest}.
+ *
+ * <p>
+ * <b>Note:</b> If the request size is zero, then all available measured values
+ * will be loaded for each configured {@link Channel}.
+ *
+ * @param requestSize The request size.
+ * @return the {@link ReadRequest}
+ * @throws IllegalArgumentException Thrown if the request size is smaller than
+ * 0.
+ */
+ public ReadRequest values(int requestSize) {
+ readRequest.setStartIndex(0);
+ readRequest.setRequestSize(requestSize);
+ return readRequest;
+ }
+
+ /**
+ * Configures the {@link ReadRequest} to load the specified number of values
+ * from a specified start index for each {@link Channel}. this is a terminal
+ * operation returning the built {@link ReadRequest}.
+ *
+ * <p>
+ * <b>Note:</b> If the request size is zero, then all available measured values
+ * will be loaded for each configured {@link Channel}.
+ *
+ * @param startIndex The start index.
+ * @param requestSize The request size.
+ * @return the {@link ReadRequest}
+ * @throws IllegalArgumentException Thrown if the request size is smaller than 0
+ * or if the start index is smaller than 0.
+ */
+ public ReadRequest values(int startIndex, int requestSize) {
+ readRequest.setStartIndex(startIndex);
+ readRequest.setRequestSize(requestSize);
+ return readRequest;
+ }
+
+ /**
* Returns an {@link ReadRequestIterable} to iterate over all available
* {@link ReadRequest}s.
*
diff --git a/src/main/java/org/eclipse/mdm/api/base/massdata/WriteRequestBuilder.java b/src/main/java/org/eclipse/mdm/api/base/massdata/WriteRequestBuilder.java
index 13f5dff..d23fb2f 100644
--- a/src/main/java/org/eclipse/mdm/api/base/massdata/WriteRequestBuilder.java
+++ b/src/main/java/org/eclipse/mdm/api/base/massdata/WriteRequestBuilder.java
@@ -146,7 +146,7 @@
} else if (scalarType.isFloat()) {
values = new float[] { (float) start, (float) increment };
} else if (scalarType.isDouble()) {
- values = new double[] { start };
+ values = new double[] { start, increment };
} else {
throw new IllegalArgumentException("Scalar type '" + scalarType + "' is not supported.");
}
@@ -198,7 +198,7 @@
} else if (scalarType.isFloat()) {
values = new float[] { (float) start, (float) increment, (float) valuesPerSaw };
} else if (scalarType.isDouble()) {
- values = new double[] { start };
+ values = new double[] { start, increment, valuesPerSaw };
} else {
throw new IllegalArgumentException("Scalar type '" + scalarType + "' is not supported.");
}