Bug 539045: Add use of nullable annotations
Follow-up-to: 1120915de4003d914eed47ff96b9d367f30a6ccb
Change-Id: I6e30a0ed8bb4692d918ddf2028a9345fa9c4dd50
diff --git a/CHANGES.md b/CHANGES.md
new file mode 100644
index 0000000..09c232c
--- /dev/null
+++ b/CHANGES.md
@@ -0,0 +1,9 @@
+# Notable Changes in StatET RJ
+
+## RJ 3.0.0 ~ StatET 4.0.0
+
+### General
+
+ * All bundles require the bundle `org.eclipse.statet.jcommons.util`.
+
+ * Large parts of API provide nullable annotations. (Bug 539045)
diff --git a/core/org.eclipse.statet.rj.client/src/org/eclipse/statet/rj/server/client/AbstractRJComClient.java b/core/org.eclipse.statet.rj.client/src/org/eclipse/statet/rj/server/client/AbstractRJComClient.java
index 121cdef..50d7f98 100644
--- a/core/org.eclipse.statet.rj.client/src/org/eclipse/statet/rj/server/client/AbstractRJComClient.java
+++ b/core/org.eclipse.statet.rj.client/src/org/eclipse/statet/rj/server/client/AbstractRJComClient.java
@@ -42,6 +42,8 @@
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Status;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.rj.RjException;
import org.eclipse.statet.rj.data.REnvironment;
import org.eclipse.statet.rj.data.RJIO;
@@ -1274,7 +1276,7 @@
}
}
- public final void evalVoid(final String expression, final RObject envir,
+ public final void evalVoid(final String expression, final @Nullable RObject envir,
final IProgressMonitor monitor) throws CoreException {
if (expression == null) {
throw new NullPointerException("expression");
@@ -1303,7 +1305,7 @@
}
}
- public final void evalVoid(final String name, final RList args, final RObject envir,
+ public final void evalVoid(final String name, final RList args, final @Nullable RObject envir,
final IProgressMonitor monitor) throws CoreException {
if (name == null) {
throw new NullPointerException("name");
@@ -1335,8 +1337,8 @@
}
}
- public RObject evalData(final String expression, final RObject envir,
- final String factoryId, final int options, final int depth,
+ public RObject evalData(final String expression, final @Nullable RObject envir,
+ final @Nullable String factoryId, final int options, final int depth,
final IProgressMonitor monitor) throws CoreException {
if (expression == null) {
throw new NullPointerException("expression");
@@ -1366,8 +1368,8 @@
}
}
- public RObject evalData(final String name, final RObject args, final RObject envir,
- final String factoryId, final int options, final int depth,
+ public RObject evalData(final String name, final RObject args, final @Nullable RObject envir,
+ final @Nullable String factoryId, final int options, final int depth,
final IProgressMonitor monitor) throws CoreException {
if (name == null) {
throw new NullPointerException("name");
@@ -1401,7 +1403,7 @@
}
public final RObject evalData(final RReference reference,
- final String factoryId, final int options, final int depth,
+ final @Nullable String factoryId, final int options, final int depth,
final IProgressMonitor monitor) throws CoreException {
final byte checkedDepth= (depth < Byte.MAX_VALUE) ? (byte) depth : Byte.MAX_VALUE;
final int level= newDataLevel();
@@ -1428,7 +1430,7 @@
}
public RObject evalData(final byte envType, final String name,
- final String factoryId, final int options, final int depth,
+ final @Nullable String factoryId, final int options, final int depth,
final IProgressMonitor monitor) throws CoreException {
if (name == null) {
throw new NullPointerException("name");
@@ -1469,7 +1471,7 @@
}
}
- public final void assignData(final String expression, final RObject data, final RObject envir,
+ public final void assignData(final String expression, final RObject data, final @Nullable RObject envir,
final IProgressMonitor monitor) throws CoreException {
if (expression == null) {
throw new NullPointerException("expression");
@@ -1502,7 +1504,7 @@
}
public final void assignData(final String name, final RObject args, final String expression,
- final RObject envir,
+ final @Nullable RObject envir,
final IProgressMonitor monitor) throws CoreException {
if (name == null) {
throw new NullPointerException("name");
@@ -1538,7 +1540,7 @@
}
public RObject[] findData(final String symbol, final RObject envir, final boolean inherits,
- final String factoryId, final int options, final int depth,
+ final @Nullable String factoryId, final int options, final int depth,
final IProgressMonitor monitor) throws CoreException {
if (symbol == null) {
throw new NullPointerException("symbol");
diff --git a/core/org.eclipse.statet.rj.client/src/org/eclipse/statet/rj/server/client/FunctionCallImpl.java b/core/org.eclipse.statet.rj.client/src/org/eclipse/statet/rj/server/client/FunctionCallImpl.java
index f29f624..b26e421 100644
--- a/core/org.eclipse.statet.rj.client/src/org/eclipse/statet/rj/server/client/FunctionCallImpl.java
+++ b/core/org.eclipse.statet.rj.client/src/org/eclipse/statet/rj/server/client/FunctionCallImpl.java
@@ -20,6 +20,9 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.rj.data.RList;
import org.eclipse.statet.rj.data.RObject;
import org.eclipse.statet.rj.data.RObjectFactory;
@@ -29,12 +32,13 @@
import org.eclipse.statet.rj.services.RService;
+@NonNullByDefault
public class FunctionCallImpl implements FunctionCall {
private final String name;
- private final List<String> argNames= new ArrayList<>();
+ private final List<@Nullable String> argNames= new ArrayList<>();
private final List<RObject> argValues= new ArrayList<>();
private final AbstractRJComClient rjs;
@@ -50,7 +54,7 @@
@Override
- public FunctionCall add(final String arg, final String expression) {
+ public FunctionCall add(final @Nullable String arg, final String expression) {
if (expression == null) {
throw new NullPointerException();
}
@@ -66,7 +70,7 @@
}
@Override
- public FunctionCall add(final String arg, final RObject data) {
+ public FunctionCall add(final @Nullable String arg, final RObject data) {
if (data == null) {
throw new NullPointerException();
}
@@ -81,7 +85,7 @@
}
@Override
- public FunctionCall addLogi(final String arg, final boolean logical) {
+ public FunctionCall addLogi(final @Nullable String arg, final boolean logical) {
final RObject data= this.rObjectFactory.createVector(
this.rObjectFactory.createLogiData(new boolean[] { logical }) );
this.argNames.add(arg);
@@ -95,7 +99,7 @@
}
@Override
- public FunctionCall addInt(final String arg, final int integer) {
+ public FunctionCall addInt(final @Nullable String arg, final int integer) {
final RObject data= this.rObjectFactory.createVector(
this.rObjectFactory.createIntData(new int[] { integer }) );
this.argNames.add(arg);
@@ -109,7 +113,7 @@
}
@Override
- public FunctionCall addNum(final String arg, final double numeric) {
+ public FunctionCall addNum(final @Nullable String arg, final double numeric) {
final RObject data= this.rObjectFactory.createVector(
this.rObjectFactory.createNumData(new double[] { numeric }) );
this.argNames.add(arg);
@@ -123,7 +127,7 @@
}
@Override
- public FunctionCall addChar(final String arg, final String character) {
+ public FunctionCall addChar(final @Nullable String arg, final String character) {
final RObject data= this.rObjectFactory.createVector(
this.rObjectFactory.createCharData(new String[] { character }));
this.argNames.add(arg);
@@ -137,7 +141,7 @@
}
@Override
- public FunctionCall addCplx(final String arg, final double real, final double imaginary) {
+ public FunctionCall addCplx(final @Nullable String arg, final double real, final double imaginary) {
final RObject data= this.rObjectFactory.createVector(
this.rObjectFactory.createCplxData(new double[] { real }, new double[] {imaginary }) );
this.argNames.add(arg);
@@ -151,7 +155,7 @@
}
@Override
- public FunctionCall addNull(final String arg) {
+ public FunctionCall addNull(final @Nullable String arg) {
this.argNames.add(arg);
this.argValues.add(RNullImpl.INSTANCE);
return this;
@@ -165,7 +169,7 @@
private RList prepareArgs(final IProgressMonitor monitor) throws CoreException {
// TODO step by step upload for large objects
- final String[] names= this.argNames.toArray(new String[this.argNames.size()]);
+ final String[] names= this.argNames.toArray(new @Nullable String[this.argNames.size()]);
final RObject[] values= this.argValues.toArray(new RObject[this.argValues.size()]);
assert (names.length == values.length);
return this.rObjectFactory.createList(values, names);
@@ -178,7 +182,7 @@
}
@Override
- public void evalVoid(final RObject envir, final IProgressMonitor monitor) throws CoreException {
+ public void evalVoid(final @Nullable RObject envir, final IProgressMonitor monitor) throws CoreException {
final RList args= prepareArgs(monitor);
this.rjs.evalVoid(this.name, args, envir, monitor);
}
@@ -190,15 +194,15 @@
}
@Override
- public RObject evalData(final String factoryId, final int options, final int depth,
+ public RObject evalData(final @Nullable String factoryId, final int options, final int depth,
final IProgressMonitor monitor) throws CoreException {
final RList args= prepareArgs(monitor);
return this.rjs.evalData(this.name, args, null, factoryId, options, depth, monitor);
}
@Override
- public RObject evalData(final RObject envir,
- final String factoryId, final int options, final int depth,
+ public RObject evalData(final @Nullable RObject envir,
+ final @Nullable String factoryId, final int options, final int depth,
final IProgressMonitor monitor) throws CoreException {
final RList args= prepareArgs(monitor);
return this.rjs.evalData(this.name, args, envir, factoryId, options, depth, monitor);
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RArray.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RArray.java
index cee235f..84d473c 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RArray.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RArray.java
@@ -14,6 +14,9 @@
package org.eclipse.statet.rj.data;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
/**
* An R object is of the type {@link RObject#TYPE_ARRAY array}, if it is an R
@@ -38,8 +41,10 @@
* @see RDataUtils#getDataIdxs(int[], int, int)
* @param <TData> the type of the data store
*/
+@NonNullByDefault
public interface RArray<TData extends RStore<?>> extends RObject {
+
/**
* Returns the length of the object. The length of an {@link RObject#TYPE_ARRAY array}
* is the count of all data values, the product of its dimensions.
@@ -58,25 +63,25 @@
RIntegerStore getDim();
/**
- * Returns the names for the dimensions of the array. This corresponds to
- * the names of the R attribute <code>dimnames</code> respectively of the R function
+ * Returns the names for the dimensions of the array. This corresponds to
+ * the names of the R attribute <code>dimnames</code> respectively of the R function
* <code>dimnames(object)</code>. That means it is equivalent to the R command
* <code>names(dimnames(object))</code>. The names for the indexes in each dimension,
* the values of the R attribute <code>dimnames</code>, are accessible by {@link #getNames(int)}.
*
- * The returned character data has the same length as the dimension data {@link #getDim()}.
- * If the R element does not have names, the names are invalid, or names are disabled, the
+ * The returned character data has the same length as the dimension data {@link #getDim()}.
+ * If the R element does not have names, the names are invalid, or names are disabled, the
* method returns <code>null</code>.
*
* @return a charater data store with the names of the dimensions or <code>null</code>
*
* @since de.walware.rj.data 0.5
*/
- RCharacterStore getDimNames();
+ @Nullable RCharacterStore getDimNames();
/**
- * Returns the names for the indexes in the given dimension of the array. This corresponds to
- * the values of the R attribute <code>dimnames</code> respectively of the R function
+ * Returns the names for the indexes in the given dimension of the array. This corresponds to
+ * the values of the R attribute <code>dimnames</code> respectively of the R function
* <code>dimnames(object)</code>. The names for the dimensions itself are accessible by
* {@link #getDimNames()}.
*
@@ -86,7 +91,7 @@
*
* @since de.walware.rj.data 0.5
*/
- RStore<?> getNames(int dim);
+ @Nullable RStore<?> getNames(int dim);
@Override
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RDataFrame.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RDataFrame.java
index 5c48cac..1cfadb2 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RDataFrame.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RDataFrame.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.rj.data;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
/**
- * An R object is of the type {@link RObject#TYPE_DATAFRAME vector}, if it is an R list object
- * inheriting the R class {@link #CLASSNAME_DATAFRAME data.frame} and compiling with the R rules for
+ * An R object is of the type {@link RObject#TYPE_DATAFRAME vector}, if it is an R list object
+ * inheriting the R class {@link #CLASSNAME_DATAFRAME data.frame} and compiling with the R rules for
* a data frame, especially its children are {@link RVector}s of the same length.
* <p>
* The methods {@link #getLength()}, {@link #getName(int)}, {@link #get(int)} and
@@ -27,11 +30,13 @@
* similar functionality with direct access to the data stores of the columns, bypassing the RVector
* objects.</p>
* <p>
- * The row information of the data frame are accessible by {@link #getRowCount()} and
+ * The row information of the data frame are accessible by {@link #getRowCount()} and
* {@link #getRowNames()}.</p>
*/
+@NonNullByDefault
public interface RDataFrame extends RList, RObject {
+
/**
* Returns the number of columns of the data frame.
* <p>
@@ -79,7 +84,7 @@
* @return the column vector or <code>null</code> (if no column with the specified name exists)
*/
@Override
- RObject get(String name);
+ @Nullable RObject get(String name);
/**
* For a data frame this method always returns <code>null</code>.
@@ -87,7 +92,7 @@
* @return <code>null</code>
*/
@Override
- RStore<?> getData();
+ @Nullable RStore<?> getData();
/**
@@ -147,7 +152,7 @@
* @param name the name of the column
* @return the data store of the column or <code>null</code> (if no column with the specified name exists)
*/
- public RStore<?> getColumn(String name);
+ public @Nullable RStore<?> getColumn(String name);
/**
* Returns the number of rows of the data frame.
@@ -165,7 +170,7 @@
*
* @return the row names
*/
- RStore<?> getRowNames();
+ @Nullable RStore<?> getRowNames();
// void setColumn(int idx, RStore<?> column);
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RDataUtils.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RDataUtils.java
index 0decdff..a7c4ad4 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RDataUtils.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RDataUtils.java
@@ -14,13 +14,17 @@
package org.eclipse.statet.rj.data;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+@NonNullByDefault
public class RDataUtils {
/**
* Returns the common abbreviation for the type of the given data store.
* These are the abbreviations used by the R function <code>str(x)</code>.
- * If there is no abbreviation for the given type, it return the class name
+ * If there is no abbreviation for the given type, it return the class name
* of an R vector with data of this type.
*
* @param store the data store
@@ -233,7 +237,7 @@
}
- public static final boolean isSingleString(final RObject obj) {
+ public static final boolean isSingleString(final @Nullable RObject obj) {
final RStore<?> data;
return (obj != null && (data= obj.getData()) != null
&& data.getStoreType() == RStore.CHARACTER
@@ -241,7 +245,7 @@
}
- public static final RVector<?> checkRVector(final RObject obj) throws UnexpectedRDataException {
+ public static final RVector<?> checkRVector(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -252,7 +256,7 @@
}
@SuppressWarnings("unchecked")
- public static final RVector<RLogicalStore> checkRLogiVector(final RObject obj) throws UnexpectedRDataException {
+ public static final RVector<RLogicalStore> checkRLogiVector(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -266,7 +270,7 @@
}
@SuppressWarnings("unchecked")
- public static final RVector<RIntegerStore> checkRIntVector(final RObject obj) throws UnexpectedRDataException {
+ public static final RVector<RIntegerStore> checkRIntVector(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -280,7 +284,7 @@
}
@SuppressWarnings("unchecked")
- public static final RVector<RNumericStore> checkRNumVector(final RObject obj) throws UnexpectedRDataException {
+ public static final RVector<RNumericStore> checkRNumVector(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -294,7 +298,7 @@
}
@SuppressWarnings("unchecked")
- public static final RVector<RCharacterStore> checkRCharVector(final RObject obj) throws UnexpectedRDataException {
+ public static final RVector<RCharacterStore> checkRCharVector(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -307,7 +311,7 @@
return (RVector<RCharacterStore>) obj;
}
- public static final RArray<?> checkRArray(final RObject obj) throws UnexpectedRDataException {
+ public static final RArray<?> checkRArray(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -317,7 +321,7 @@
return (RArray<?>) obj;
}
- public static final RArray<?> checkRArray(final RObject obj, final int dim) throws UnexpectedRDataException {
+ public static final RArray<?> checkRArray(final @Nullable RObject obj, final int dim) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -333,7 +337,7 @@
return array;
}
- public static final RArray<?> checkRArray(final RObject obj, final long dim) throws UnexpectedRDataException {
+ public static final RArray<?> checkRArray(final @Nullable RObject obj, final long dim) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -350,7 +354,7 @@
}
@SuppressWarnings("unchecked")
- public static final RArray<RCharacterStore> checkRCharArray(final RObject obj, final int dim) throws UnexpectedRDataException {
+ public static final RArray<RCharacterStore> checkRCharArray(final @Nullable RObject obj, final int dim) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -369,7 +373,7 @@
return array;
}
- public static final RList checkRList(final RObject obj) throws UnexpectedRDataException {
+ public static final RList checkRList(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -379,7 +383,7 @@
return (RList) obj;
}
- public static final RDataFrame checkRDataFrame(final RObject obj) throws UnexpectedRDataException {
+ public static final RDataFrame checkRDataFrame(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -389,7 +393,7 @@
return (RDataFrame) obj;
}
- public static final RDataFrame checkRDataFrame(final RObject obj, final long length) throws UnexpectedRDataException {
+ public static final RDataFrame checkRDataFrame(final @Nullable RObject obj, final long length) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -402,7 +406,7 @@
return (RDataFrame) obj;
}
- public static final RReference checkRReference(final RObject obj) throws UnexpectedRDataException {
+ public static final RReference checkRReference(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -413,7 +417,7 @@
return (RReference) obj;
}
- public static final RReference checkRReference(final RObject obj, final byte referencedObjectType)
+ public static final RReference checkRReference(final @Nullable RObject obj, final byte referencedObjectType)
throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
@@ -431,7 +435,7 @@
return (RReference) obj;
}
- public static final RLanguage checkRLanguage(final RObject obj) throws UnexpectedRDataException {
+ public static final RLanguage checkRLanguage(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -441,7 +445,7 @@
return (RLanguage) obj;
}
- public static final Boolean checkSingleLogi(final RObject obj) throws UnexpectedRDataException {
+ public static final @Nullable Boolean checkSingleLogi(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -461,7 +465,7 @@
return Boolean.valueOf(data.getLogi(0));
}
- public static final boolean checkSingleLogiValue(final RObject obj) throws UnexpectedRDataException {
+ public static final boolean checkSingleLogiValue(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -481,7 +485,7 @@
return data.getLogi(0);
}
- public static final Integer checkSingleInt(final RObject obj) throws UnexpectedRDataException {
+ public static final @Nullable Integer checkSingleInt(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -501,7 +505,7 @@
return Integer.valueOf(data.getInt(0));
}
- public static final int checkSingleIntValue(final RObject obj) throws UnexpectedRDataException {
+ public static final int checkSingleIntValue(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -521,7 +525,7 @@
return data.getInt(0);
}
- public static final Double checkSingleNum(final RObject obj) throws UnexpectedRDataException {
+ public static final @Nullable Double checkSingleNum(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -541,7 +545,7 @@
return Double.valueOf(data.getNum(0));
}
- public static final double checkSingleNumValue(final RObject obj) throws UnexpectedRDataException {
+ public static final double checkSingleNumValue(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -561,7 +565,7 @@
return data.getNum(0);
}
- public static final String checkSingleChar(final RObject obj) throws UnexpectedRDataException {
+ public static final @Nullable String checkSingleChar(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -578,7 +582,7 @@
return data.getChar(0);
}
- public static final String checkSingleCharValue(final RObject obj) throws UnexpectedRDataException {
+ public static final String checkSingleCharValue(final @Nullable RObject obj) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
@@ -598,7 +602,7 @@
return data.getChar(0);
}
- public static final RObject checkType(final RObject obj, final byte objectType) throws UnexpectedRDataException {
+ public static final RObject checkType(final @Nullable RObject obj, final byte objectType) throws UnexpectedRDataException {
if (obj == null) {
throw new UnexpectedRDataException("Missing R object.");
}
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/REnvironment.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/REnvironment.java
index 76d64bc..0d89f58 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/REnvironment.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/REnvironment.java
@@ -14,6 +14,8 @@
package org.eclipse.statet.rj.data;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* An R object is of the type {@link RObject#TYPE_ENVIRONMENT environment}, if the
@@ -26,6 +28,7 @@
* Even the interface extends {@link RList}, the objects are not a list in R!
* The inheritance is only for a uniform API.</p>
*/
+@NonNullByDefault
public interface REnvironment extends RList {
/**
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RFunction.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RFunction.java
index 1e06234..facafd8 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RFunction.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RFunction.java
@@ -14,7 +14,11 @@
package org.eclipse.statet.rj.data;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+@NonNullByDefault
public interface RFunction extends RObject {
// RArgument getArgument(final int idx);
@@ -23,7 +27,7 @@
// Iterator<RArgument> getArgumentIterator();
// source based
- String getHeaderSource();
- String getBodySource();
+ @Nullable String getHeaderSource();
+ @Nullable String getBodySource();
}
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RJIOExternalizable.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RJIOExternalizable.java
index e4afe0b..f0e48aa 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RJIOExternalizable.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RJIOExternalizable.java
@@ -16,7 +16,10 @@
import java.io.IOException;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+@NonNullByDefault
public interface RJIOExternalizable {
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RLanguage.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RLanguage.java
index 4af0911..ca87adf 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RLanguage.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RLanguage.java
@@ -14,10 +14,14 @@
package org.eclipse.statet.rj.data;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
/**
* R object of type call
*/
+@NonNullByDefault
public interface RLanguage extends RObject {
@@ -30,7 +34,7 @@
byte getLanguageType();
- String getSource();
+ @Nullable String getSource();
}
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RList.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RList.java
index 5cec8c5..0182450 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RList.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RList.java
@@ -14,6 +14,9 @@
package org.eclipse.statet.rj.data;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
/**
* An R object is of the type {@link RObject#TYPE_LIST list}, if the object is
@@ -24,7 +27,7 @@
* objects of this type.</p>
* <p>
* The interfaces for R objects of the type {@value RObject#TYPE_DATAFRAME} -
- * {@link RDataFrame}, {@link RObject#TYPE_S4OBJECT} - {@link RS4Object} and
+ * {@link RDataFrame}, {@link RObject#TYPE_S4OBJECT} - {@link RS4Object} and
* {@link RObject#TYPE_ENVIRONMENT} - {@link REnvironment} extends this interface for the
* purpose of a uniform API.
* Objects of this type does not necessary provide the full functionality and the
@@ -33,8 +36,10 @@
* <p>
* Indexes are zero-based (as usual in Java) and not one-base like in R.</p>
*/
+@NonNullByDefault
public interface RList extends RObject {
+
/**
* Returns the length of the object. The length of a {@link RObject#TYPE_LIST list}
* is the count of list items.
@@ -49,7 +54,7 @@
*
* @return the item names
*/
- RCharacterStore getNames();
+ @Nullable RCharacterStore getNames();
/**
* Returns the name of the item at the specified index.
@@ -57,10 +62,10 @@
* This is equivalent to <code>getNames().getChar(idx)</code>.</p>
*
* @param idx the index (zero-based) of the item
- * @return the slot names
+ * @return the name of the item
* @throws IndexOutOfBoundsException if <code>idx</code> < 0 or <code>idx</code> ≥ length
*/
- String getName(int idx);
+ @Nullable String getName(int idx);
/**
* Returns the name of the item at the specified index.
@@ -68,10 +73,10 @@
* This is equivalent to <code>getNames().getChar(idx)</code>.</p>
*
* @param idx the index (zero-based) of the item
- * @return the slot names
+ * @return the name of the item
* @throws IndexOutOfBoundsException if <code>idx</code> < 0 or <code>idx</code> ≥ length
*/
- String getName(long idx);
+ @Nullable String getName(long idx);
/**
* Returns the item at the specified index.
@@ -80,7 +85,7 @@
* @return the item
* @throws IndexOutOfBoundsException if <code>idx</code> < 0 or <code>idx</code> ≥ length
*/
- RObject get(int idx);
+ @Nullable RObject get(int idx);
/**
* Returns the item at the specified index.
@@ -89,7 +94,7 @@
* @return the item
* @throws IndexOutOfBoundsException if <code>idx</code> < 0 or <code>idx</code> ≥ length
*/
- RObject get(long idx);
+ @Nullable RObject get(long idx);
/**
* Returns the item with the specified name. If multiple items have that name,
@@ -98,7 +103,7 @@
* @param name the name of the item
* @return the item or <code>null</code> (if no item with the specified name exists)
*/
- RObject get(String name);
+ @Nullable RObject get(String name);
// /**
// * Returns an array with the R object items of the list.
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RObject.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RObject.java
index ca01bfd..556d950 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RObject.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RObject.java
@@ -14,15 +14,19 @@
package org.eclipse.statet.rj.data;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.rj.data.impl.RNullImpl;
/**
* Basic interface of all R object.
* <p>
- * To detect the type of an RObject instance, the method {@link #getRObjectType()}
+ * To detect the type of an RObject instance, the method {@link #getRObjectType()}
* should be used, not the java class type (e.g. instanceof) of the object.</p>
*/
+@NonNullByDefault
public interface RObject {
/**
@@ -53,7 +57,7 @@
/**
* Constant indicating an RDataFrame object. An R object is of this type
* if it is an R list object inheriting the R class {@link #CLASSNAME_DATAFRAME data.frame}
- * and compiling with the R rules for a data frame, especially its children
+ * and compiling with the R rules for a data frame, especially its children
* are {@link RVector}s of the same length.
* <p>
* The object is an instance of {@link RDataFrame}.</p>
@@ -61,7 +65,7 @@
byte TYPE_DATAFRAME= 0x06;
/**
- * Constant indicating an RList object. An R object is of this type if it is
+ * Constant indicating an RList object. An R object is of this type if it is
* a list but not a data frame (see {@link #TYPE_DATAFRAME}).
* <p>
* The object is an instance of {@link RList}.</p>
@@ -78,7 +82,7 @@
/**
* Constant indicating an S4 object. An R object is of this type if the R
* command <code>isS4</code> returns true. This is criterion has priority
- * above the criteria for the other data types. If an S4 object represents
+ * above the criteria for the other data types. If an S4 object represents
* also a simple data type, this data is accessible by its data slot.
* <p>
* The object is an instance of {@link RS4Object}.</p>
@@ -191,7 +195,7 @@
*
* @return the data store or <code>null</code>, if not supported by the object
*/
- RStore<?> getData();
+ @Nullable RStore<?> getData();
/**
* Returns the attribute list of the object
@@ -200,6 +204,6 @@
*
* @return the attribute list or <code>null</code>, if not available
*/
- RList getAttributes();
+ @Nullable RList getAttributes();
}
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RObjectFactory.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RObjectFactory.java
index 915ca6c..ac820d9 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RObjectFactory.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RObjectFactory.java
@@ -16,8 +16,11 @@
import java.io.IOException;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+@NonNullByDefault
public interface RObjectFactory {
/** Flag to fetch only the structure but not the data (store) of the objects */
@@ -27,10 +30,10 @@
int F_WITH_ATTR= 0x2;
/** Flag to load environments directly instead of the reference only */
- int F_LOAD_ENVIR= 0x10;
+ int F_LOAD_ENVIRONMENT= 1 << 4;
/** Flag to eval all promises directly */
- int F_LOAD_PROMISE= 0x20;
+ int F_LOAD_PROMISE= 1 << 5;
int O_LENGTHGRADE_MASK= 7; // 3 bits
@@ -50,7 +53,7 @@
<TData extends RStore<?>> RVector<TData> createVector(TData data);
<TData extends RStore<?>> RArray<TData> createArray(TData data, int[] dim);
<TData extends RStore<?>> RArray<TData> createMatrix(TData data, int dim1, int dim2);
- RList createList(RObject[] components, String[] names);
+ RList createList(RObject[] components, String @Nullable [] names);
// RDataFrame createDataFrame(RData[] columns, String[] columnNames, String[] rowNames);
RLanguage createName(String name);
@@ -73,7 +76,7 @@
void writeAttributeList(RList list, RJIO io) throws IOException;
RList readAttributeList(RJIO io) throws IOException;
- void writeNames(RStore<?> names, RJIO io) throws IOException;
- RStore<?> readNames(RJIO io, long length) throws IOException;
+ void writeNames(@Nullable RStore<?> names, RJIO io) throws IOException;
+ @Nullable RStore<?> readNames(RJIO io, long length) throws IOException;
}
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RReference.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RReference.java
index f14c1a9..e22b195 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RReference.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RReference.java
@@ -14,10 +14,14 @@
package org.eclipse.statet.rj.data;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
/**
* A reference to an R object
*/
+@NonNullByDefault
public interface RReference extends RObject {
@@ -28,6 +32,6 @@
byte getReferencedRObjectType();
- RObject getResolvedRObject();
+ @Nullable RObject getResolvedRObject();
}
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RS4Object.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RS4Object.java
index fa3b617..33a5e83 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RS4Object.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RS4Object.java
@@ -14,9 +14,12 @@
package org.eclipse.statet.rj.data;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
/**
- * An R object is of the type {@link RObject#TYPE_S4OBJECT S4 object}, if the R
+ * An R object is of the type {@link RObject#TYPE_S4OBJECT S4 object}, if the R
* command <code>isS4(object)</code> returns true. Such an R S4 object is
* represented by an instance of this interface.
* <p>
@@ -33,6 +36,7 @@
* methods {@link #getLength()}, {@link #getName(int)}, {@link #get(int)} and
* {@link #get(String)}.</p>
*/
+@NonNullByDefault
public interface RS4Object extends RList {
@@ -73,7 +77,7 @@
*
* @return the object in the data slot
*/
- RObject getDataSlot();
+ @Nullable RObject getDataSlot();
/**
* Returns the data store of the data slot, if it exists.
@@ -81,7 +85,7 @@
* @return the data of the data slot
*/
@Override
- RStore<?> getData();
+ @Nullable RStore<?> getData();
/**
* Returns the names of the slots.
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RStore.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RStore.java
index d87bb2b..b6927a4 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RStore.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RStore.java
@@ -49,6 +49,7 @@
*/
public interface RStore<P> {
+
/**
* Constant indicating a store for R data type <code>logical<code>.
*
@@ -101,7 +102,7 @@
/**
* Constant indicating a store for R data type <code>character<code>.
*
- * <p>The story object is an instance of {@link RCharacterStore}.
+ * <p>The story object is an instance of {@link RCharacterStore}.
* The {@link #getBaseVectorRClassName() class name} is
* <code>{@link RObject#CLASSNAME_CHARACTER character}</code>.</p>
*
@@ -115,7 +116,7 @@
*
* <p>Note that raw data doesn't support NAs.</p>
*
- * <p>The story object is an instance of {@link RRawStore}.
+ * <p>The story object is an instance of {@link RRawStore}.
* The {@link #getBaseVectorRClassName() class name} is
* <code>{@link RObject#CLASSNAME_RAW raw}</code>.</p>
*
@@ -129,8 +130,8 @@
* data type for R objects extending the R class <code>factor<code>.
*
* <p>The story object is an instance of {@link RFactorStore}.
- * The {@link #getBaseVectorRClassName() class name} is
- * <code>{@link RObject#CLASSNAME_FACTOR factor}</code> or
+ * The {@link #getBaseVectorRClassName() class name} is
+ * <code>{@link RObject#CLASSNAME_FACTOR factor}</code> or
* <code>{@link RObject#CLASSNAME_ORDERED ordered}</code>.
*
* @see RFactorStore#getInt(int)
@@ -348,8 +349,8 @@
* Return the numeric/real/double value at the specified index.
* <p>
* Numeric values in R matches exactly the Java double values.
- * Also NaN, Inf and -Inf respectively {@link Double#isNaN(double)},
- * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
+ * Also NaN, Inf and -Inf respectively {@link Double#isNaN(double)},
+ * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
* supported.</p>
*
* @param idx the index (zero-based) of the value
@@ -363,8 +364,8 @@
* Return the numeric/real/double value at the specified index.
* <p>
* Numeric values in R matches exactly the Java double values.
- * Also NaN, Inf and -Inf respectively {@link Double#isNaN(double)},
- * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
+ * Also NaN, Inf and -Inf respectively {@link Double#isNaN(double)},
+ * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
* supported.</p>
*
* @param idx the index (zero-based) of the value
@@ -378,8 +379,8 @@
* Sets the numeric/real/double value at the specified index.
* <p>
* Numeric values in R matches exactly the Java double values.
- * Also NaN, Inf and -Inf respectively {@link Double#NaN},
- * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
+ * Also NaN, Inf and -Inf respectively {@link Double#NaN},
+ * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
* supported.</p>
*
* @param idx the index (zero-based) of the value
@@ -394,8 +395,8 @@
* Sets the numeric/real/double value at the specified index.
* <p>
* Numeric values in R matches exactly the Java double values.
- * Also NaN, Inf and -Inf respectively {@link Double#NaN},
- * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
+ * Also NaN, Inf and -Inf respectively {@link Double#NaN},
+ * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
* supported.</p>
*
* @param idx the index (zero-based) of the value
@@ -409,10 +410,10 @@
/**
* Returns the real part the complex number value at the specified index.
* <p>
- * The numeric values of the parts of the complex number in R matches
+ * The numeric values of the parts of the complex number in R matches
* exactly the Java double values.
- * Also NaN, Inf and -Inf respectively {Double#isNaN(double)},
- * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
+ * Also NaN, Inf and -Inf respectively {Double#isNaN(double)},
+ * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
* supported.</p>
*
* @param idx the index (zero-based) of the value
@@ -425,10 +426,10 @@
/**
* Returns the real part the complex number value at the specified index.
* <p>
- * The numeric values of the parts of the complex number in R matches
+ * The numeric values of the parts of the complex number in R matches
* exactly the Java double values.
- * Also NaN, Inf and -Inf respectively {Double#isNaN(double)},
- * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
+ * Also NaN, Inf and -Inf respectively {Double#isNaN(double)},
+ * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
* supported.</p>
*
* @param idx the index (zero-based) of the value
@@ -441,10 +442,10 @@
/**
* Returns the imaginary part the complex number value at the specified index.
* <p>
- * The numeric values of the parts of the complex number in R matches
+ * The numeric values of the parts of the complex number in R matches
* exactly the Java double values.
- * Also NaN, Inf and -Inf respectively {Double#isNaN(double)},
- * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
+ * Also NaN, Inf and -Inf respectively {Double#isNaN(double)},
+ * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
* supported.</p>
*
* @param idx the index (zero-based) of the value
@@ -457,10 +458,10 @@
/**
* Returns the imaginary part the complex number value at the specified index.
* <p>
- * The numeric values of the parts of the complex number in R matches
+ * The numeric values of the parts of the complex number in R matches
* exactly the Java double values.
- * Also NaN, Inf and -Inf respectively {Double#isNaN(double)},
- * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
+ * Also NaN, Inf and -Inf respectively {Double#isNaN(double)},
+ * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
* supported.</p>
*
* @param idx the index (zero-based) of the value
@@ -473,10 +474,10 @@
/**
* Sets the complex number value at the specified index.
* <p>
- * The numeric values of the parts of the complex number in R matches
+ * The numeric values of the parts of the complex number in R matches
* exactly the Java double values.
- * Also NaN, Inf and -Inf respectively {@link Double#NaN},
- * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
+ * Also NaN, Inf and -Inf respectively {@link Double#NaN},
+ * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
* supported.</p>
*
* @param idx the index (zero-based) of the value
@@ -491,10 +492,10 @@
/**
* Sets the complex number value at the specified index.
* <p>
- * The numeric values of the parts of the complex number in R matches
+ * The numeric values of the parts of the complex number in R matches
* exactly the Java double values.
- * Also NaN, Inf and -Inf respectively {@link Double#NaN},
- * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
+ * Also NaN, Inf and -Inf respectively {@link Double#NaN},
+ * {@link Double#POSITIVE_INFINITY} and {@link Double#NEGATIVE_INFINITY} are
* supported.</p>
*
* @param idx the index (zero-based) of the value
@@ -617,7 +618,7 @@
void setRaw(long idx, byte raw);
/**
- * Returns the value at the specified index as Java object. The subtypes of
+ * Returns the value at the specified index as Java object. The subtypes of
* RStore defines more specific array types.
* <p>
* R NA values are represented as <code>null</code>. Java primitives are converted
@@ -631,7 +632,7 @@
P get(int idx);
/**
- * Returns the value at the specified index as Java object. The subtypes of
+ * Returns the value at the specified index as Java object. The subtypes of
* RStore defines more specific array types.
* <p>
* R NA values are represented as <code>null</code>. Java primitives are converted
@@ -645,7 +646,7 @@
P get(long idx);
/**
- * Returns the values of the store as Java object array. The subtypes of
+ * Returns the values of the store as Java object array. The subtypes of
* RStore defines more specific array types.
* <p>
* The array is newly created for each call of this method. It has the
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RVector.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RVector.java
index 6003879..8498dac 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RVector.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RVector.java
@@ -14,6 +14,9 @@
package org.eclipse.statet.rj.data;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
/**
* An R object is of the type {@link RObject#TYPE_VECTOR vector}, if it is an R
@@ -22,11 +25,11 @@
* <p>
* The real data is stored in a {@link RStore} accessible by {@link #getData()}.</p>
* <p>
- * The type {@link RObject#TYPE_VECTOR vector} equates not the R command
- * <code>is.vector(object)</code>, mainly because all attributes except the dimension
+ * The type {@link RObject#TYPE_VECTOR vector} equates not the R command
+ * <code>is.vector(object)</code>, mainly because all attributes except the dimension
* are allowed (in the R function only the names attribute is allowed). Especially
* an R factor object is of the type {@link RObject#TYPE_VECTOR vector}, implements
- * RVector and has a data store of the type {@link RStore#FACTOR}. Also another S3
+ * RVector and has a data store of the type {@link RStore#FACTOR}. Also another S3
* object based on a such a data object is of the type {@link RObject#TYPE_VECTOR vector}.
* Whereas a S4 object is never directly of this type even the object simulates such
* a data object in R. Such an object is of the type {@link RObject#TYPE_S4OBJECT S4 object},
@@ -35,13 +38,15 @@
* <p>
* The complementary type for objects with dimension attribute is the type
* {@link RObject#TYPE_ARRAY array} and the interface {@link RArray}.
- * The data structure for multiple R objects is represented by the type
+ * The data structure for multiple R objects is represented by the type
* {@link RObject#TYPE_LIST list} respectively the interface {@link RList}.</p>
*
* @param <TData> the type of the data store
*/
+@NonNullByDefault
public interface RVector<TData extends RStore<?>> extends RObject {
+
/**
* Returns the length of the object. The length of an {@link RObject#TYPE_VECTOR vector}
* is the count of all data values.
@@ -55,14 +60,14 @@
* Returns the names for the indexes of the vector. This corresponds to the values of the
* R attribute (<code>names</code>) respectively the R function <code>names(object)</code>.
*
- * The returned character data has the same length the vector. If the R element does not have
+ * The returned character data has the same length the vector. If the R element does not have
* names, the names are invalid, or names are disabled, the method returns <code>null</code>.
*
* @return a data store with the names of the indexes or <code>null</code>
*
* @since de.walware.rj.data 0.5
*/
- RStore<?> getNames();
+ @Nullable RStore<?> getNames();
@Override
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/DefaultRObjectFactory.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/DefaultRObjectFactory.java
index 2c71581..865b806 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/DefaultRObjectFactory.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/DefaultRObjectFactory.java
@@ -17,6 +17,8 @@
import java.io.IOException;
import java.io.ObjectInput;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.rj.data.RArray;
import org.eclipse.statet.rj.data.RCharacterStore;
import org.eclipse.statet.rj.data.RComplexStore;
@@ -394,12 +396,12 @@
}
- public RList createList(final RObject[] components, final String[] names, final String classname) {
+ public RList createList(final RObject[] components, final String @Nullable [] names, final String classname) {
return new RList32Impl(components, classname, names);
}
@Override
- public RList createList(final RObject[] components, final String[] names) {
+ public RList createList(final RObject[] components, final String @Nullable [] names) {
return createList(components, names, RObject.CLASSNAME_LIST);
}
@@ -702,7 +704,7 @@
}
@Override
- public RStore<?> readNames(final RJIO io, final long length) throws IOException {
+ public @Nullable RStore<?> readNames(final RJIO io, final long length) throws IOException {
final byte type= io.readByte();
if (type == RStore.CHARACTER) {
return (length <= Integer.MAX_VALUE) ?
@@ -716,7 +718,7 @@
}
@Override
- public void writeNames(final RStore<?> names, final RJIO io) throws IOException {
+ public void writeNames(final @Nullable RStore<?> names, final RJIO io) throws IOException {
if (names != null) {
final byte type= names.getStoreType();
if (type == RStore.CHARACTER) {
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/ExternalizableRObject.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/ExternalizableRObject.java
index 5922b85..645538d 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/ExternalizableRObject.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/ExternalizableRObject.java
@@ -16,10 +16,13 @@
import java.io.IOException;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.rj.data.RJIO;
import org.eclipse.statet.rj.data.RObjectFactory;
+@NonNullByDefault
public interface ExternalizableRObject {
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RArrayImpl.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RArrayImpl.java
index c228b5e..2766d18 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RArrayImpl.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RArrayImpl.java
@@ -16,6 +16,9 @@
import java.io.IOException;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.rj.data.RArray;
import org.eclipse.statet.rj.data.RCharacterStore;
import org.eclipse.statet.rj.data.RDataUtils;
@@ -27,6 +30,7 @@
import org.eclipse.statet.rj.data.RStore;
+@NonNullByDefault
public class RArrayImpl<TData extends RStore<?>> extends AbstractRObject
implements RArray<TData>, ExternalizableRObject {
@@ -36,7 +40,7 @@
private String className1;
private RInteger32Store dimAttribute;
- private SimpleRList<RStore<?>> dimnamesAttribute;
+ private @Nullable SimpleRList<RStore<?>> dimnamesAttribute;
public RArrayImpl(final TData data, final String className1, final int[] dim) {
@@ -47,9 +51,9 @@
if (data.getLength() >= 0 && data.getLength() != this.length) {
throw new IllegalArgumentException("dim");
}
+ this.data= data;
this.className1= className1;
this.dimAttribute= new RInteger32Store(dim);
- this.data= data;
}
public RArrayImpl(final RJIO io, final RObjectFactory factory) throws IOException {
@@ -146,7 +150,7 @@
}
@Override
- public RCharacterStore getDimNames() {
+ public @Nullable RCharacterStore getDimNames() {
if (this.dimnamesAttribute != null) {
return this.dimnamesAttribute.getNames();
}
@@ -154,7 +158,7 @@
}
@Override
- public RStore<?> getNames(final int dim) {
+ public @Nullable RStore<?> getNames(final int dim) {
if (this.dimnamesAttribute != null) {
return this.dimnamesAttribute.get(dim);
}
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RDataFrame32Impl.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RDataFrame32Impl.java
index 2fb81a7..2c8e944 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RDataFrame32Impl.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RDataFrame32Impl.java
@@ -16,6 +16,9 @@
import java.io.IOException;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.rj.data.RCharacterStore;
import org.eclipse.statet.rj.data.RDataFrame;
import org.eclipse.statet.rj.data.RJIO;
@@ -24,6 +27,7 @@
import org.eclipse.statet.rj.data.RStore;
+@NonNullByDefault
public class RDataFrame32Impl extends RList32Impl
implements RDataFrame, ExternalizableRObject {
@@ -110,18 +114,16 @@
@Override
public RStore<?> getColumn(final int idx) {
- final RObject obj= get(idx);
- return (obj != null) ? obj.getData() : null;
+ return get(idx).getData();
}
@Override
public RStore<?> getColumn(final long idx) {
- final RObject obj= get(idx);
- return (obj != null) ? obj.getData() : null;
+ return get(idx).getData();
}
@Override
- public RStore<?> getColumn(final String name) {
+ public @Nullable RStore<?> getColumn(final String name) {
final RObject obj= get(name);
return (obj != null) ? obj.getData() : null;
}
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RFunctionImpl.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RFunctionImpl.java
index 3b1f222..f67a186 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RFunctionImpl.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RFunctionImpl.java
@@ -16,24 +16,29 @@
import java.io.IOException;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.rj.data.RFunction;
import org.eclipse.statet.rj.data.RJIO;
import org.eclipse.statet.rj.data.RObjectFactory;
import org.eclipse.statet.rj.data.RStore;
+@NonNullByDefault
public class RFunctionImpl extends AbstractRObject
implements RFunction, ExternalizableRObject {
- private String headerSource;
- private String bodySource;
+ private @Nullable String headerSource;
+ private @Nullable String bodySource;
- public RFunctionImpl(final String header) {
+ public RFunctionImpl(final @Nullable String header) {
this.headerSource= header;
}
+ @SuppressWarnings("null")
public RFunctionImpl(final RJIO io, final RObjectFactory factory) throws IOException {
readExternal(io, factory);
}
@@ -67,17 +72,17 @@
}
@Override
- public String getHeaderSource() {
+ public @Nullable String getHeaderSource() {
return this.headerSource;
}
@Override
- public String getBodySource() {
+ public @Nullable String getBodySource() {
return this.bodySource;
}
@Override
- public RStore<?> getData() {
+ public @Nullable RStore<?> getData() {
return null;
}
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RLanguageImpl.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RLanguageImpl.java
index f36f7ee..45c68d6 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RLanguageImpl.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RLanguageImpl.java
@@ -16,12 +16,16 @@
import java.io.IOException;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.rj.data.RJIO;
import org.eclipse.statet.rj.data.RLanguage;
import org.eclipse.statet.rj.data.RObjectFactory;
import org.eclipse.statet.rj.data.RStore;
+@NonNullByDefault
public class RLanguageImpl extends AbstractRObject
implements RLanguage, ExternalizableRObject {
@@ -42,20 +46,21 @@
private String className1;
- private String source;
+ private @Nullable String source;
- public RLanguageImpl(final byte type, final String source, final String className1) {
+ public RLanguageImpl(final byte type, final String source, final @Nullable String className1) {
this.type= type;
this.className1= (className1 != null) ? className1 : getBaseClassname(type);
this.source= source;
}
- public RLanguageImpl(final byte type, final String className1) {
+ public RLanguageImpl(final byte type, final @Nullable String className1) {
this.type= type;
this.className1= (className1 != null) ? className1 : getBaseClassname(type);
}
+ @SuppressWarnings("null")
public RLanguageImpl(final RJIO io, final RObjectFactory factory) throws IOException {
readExternal(io, factory);
}
@@ -115,12 +120,12 @@
}
@Override
- public String getSource() {
+ public @Nullable String getSource() {
return this.source;
}
@Override
- public RStore<?> getData() {
+ public @Nullable RStore<?> getData() {
return null;
}
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RNullImpl.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RNullImpl.java
index c5db8be..a257af9 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RNullImpl.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RNullImpl.java
@@ -14,11 +14,15 @@
package org.eclipse.statet.rj.data.impl;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.rj.data.RList;
import org.eclipse.statet.rj.data.RObject;
import org.eclipse.statet.rj.data.RStore;
+@NonNullByDefault
public class RNullImpl implements RObject {
@@ -51,12 +55,12 @@
}
@Override
- public RStore<?> getData() {
+ public @Nullable RStore<?> getData() {
return null;
}
@Override
- public RList getAttributes() {
+ public @Nullable RList getAttributes() {
return null;
}
@@ -66,7 +70,7 @@
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
return (this == obj || (
(obj instanceof RObject) && ((RObject) obj).getRObjectType() == RObject.TYPE_NULL) );
}
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RReferenceImpl.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RReferenceImpl.java
index 9be5da8..7adf876 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RReferenceImpl.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RReferenceImpl.java
@@ -16,6 +16,9 @@
import java.io.IOException;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.rj.data.RDataUtils;
import org.eclipse.statet.rj.data.RJIO;
import org.eclipse.statet.rj.data.RList;
@@ -25,6 +28,7 @@
import org.eclipse.statet.rj.data.RStore;
+@NonNullByDefault
public class RReferenceImpl implements RReference, ExternalizableRObject {
@@ -39,6 +43,7 @@
this.baseClassName= baseClass;
}
+ @SuppressWarnings("null")
public RReferenceImpl(final RJIO io, final RObjectFactory factory) throws IOException {
readExternal(io, factory);
}
@@ -83,17 +88,17 @@
}
@Override
- public RObject getResolvedRObject() {
+ public @Nullable RObject getResolvedRObject() {
return null;
}
@Override
- public RStore<?> getData() {
+ public @Nullable RStore<?> getData() {
return null;
}
@Override
- public RList getAttributes() {
+ public @Nullable RList getAttributes() {
return null;
}
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RS4ObjectImpl.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RS4ObjectImpl.java
index d76a386..4fc12bc 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RS4ObjectImpl.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RS4ObjectImpl.java
@@ -16,6 +16,9 @@
import java.io.IOException;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.rj.data.RCharacterStore;
import org.eclipse.statet.rj.data.RJIO;
import org.eclipse.statet.rj.data.RObject;
@@ -24,6 +27,7 @@
import org.eclipse.statet.rj.data.RStore;
+@NonNullByDefault
public class RS4ObjectImpl extends AbstractRObject
implements RS4Object, ExternalizableRObject {
@@ -46,6 +50,7 @@
this.slotValues= slotValues;
}
+ @SuppressWarnings("null")
public RS4ObjectImpl(final RJIO io, final RObjectFactory factory) throws IOException {
readExternal(io, factory);
}
@@ -106,17 +111,12 @@
}
@Override
- public RObject getDataSlot() {
+ public @Nullable RObject getDataSlot() {
return (this.dataSlotIdx >= 0) ? this.slotValues[this.dataSlotIdx] : null;
}
- public byte getDataType() {
- return (this.dataSlotIdx >= 0 && this.slotValues[this.dataSlotIdx] != null) ?
- this.slotValues[this.dataSlotIdx].getData().getStoreType() : 0;
- }
-
@Override
- public RStore<?> getData() {
+ public @Nullable RStore<?> getData() {
return (this.dataSlotIdx >= 0 && this.slotValues[this.dataSlotIdx] != null) ?
this.slotValues[this.dataSlotIdx].getData() : null;
}
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RVectorImpl.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RVectorImpl.java
index 9060301..56c24d6 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RVectorImpl.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/impl/RVectorImpl.java
@@ -16,6 +16,9 @@
import java.io.IOException;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.rj.data.RJIO;
import org.eclipse.statet.rj.data.RList;
import org.eclipse.statet.rj.data.RObjectFactory;
@@ -23,6 +26,7 @@
import org.eclipse.statet.rj.data.RVector;
+@NonNullByDefault
public class RVectorImpl<TData extends RStore<?>> extends AbstractRObject
implements RVector<TData>, ExternalizableRObject {
@@ -31,7 +35,7 @@
private long length;
private String className1;
- private RStore<?> namesAttribute;
+ private @Nullable RStore<?> namesAttribute;
public RVectorImpl(final TData data, final String className1) {
@@ -75,6 +79,7 @@
this.namesAttribute= initialNames;
}
+ @SuppressWarnings("null")
public RVectorImpl(final RJIO io, final RObjectFactory factory) throws IOException {
readExternal(io, factory);
}
@@ -149,7 +154,7 @@
}
@Override
- public RStore<?> getNames() {
+ public @Nullable RStore<?> getNames() {
return this.namesAttribute;
}
diff --git a/core/org.eclipse.statet.rj.server.remotetools/.classpath b/core/org.eclipse.statet.rj.server.remotetools/.classpath
index eca7bdb..7728a88 100644
--- a/core/org.eclipse.statet.rj.server.remotetools/.classpath
+++ b/core/org.eclipse.statet.rj.server.remotetools/.classpath
@@ -1,7 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+ <attributes>
+ <attribute name="annotationpath" value="/org.eclipse.statet/eea/"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+ <attributes>
+ <attribute name="annotationpath" value="/org.eclipse.statet/eea/"/>
+ </attributes>
+ </classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/core/org.eclipse.statet.rj.services.core/.classpath b/core/org.eclipse.statet.rj.services.core/.classpath
index 020ba8c..f6c1afc 100644
--- a/core/org.eclipse.statet.rj.services.core/.classpath
+++ b/core/org.eclipse.statet.rj.services.core/.classpath
@@ -3,9 +3,14 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="owner.project.facets" value="java"/>
+ <attribute name="annotationpath" value="/org.eclipse.statet/eea/"/>
</attributes>
</classpathentry>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+ <attributes>
+ <attribute name="annotationpath" value="/org.eclipse.statet/eea/"/>
+ </attributes>
+ </classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="srcREnv"/>
<classpathentry kind="src" path="srcGraphic"/>
diff --git a/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/FQRObjectRef.java b/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/FQRObjectRef.java
index 2cc2272..c7c4c1c 100644
--- a/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/FQRObjectRef.java
+++ b/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/FQRObjectRef.java
@@ -14,14 +14,17 @@
package org.eclipse.statet.rj.services;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.rj.data.RObject;
/**
* Fully qualified reference to an R object.
*
- * @since 2.1 (provisional)
+ * @since 2.1
*/
+@NonNullByDefault
public interface FQRObjectRef {
@@ -40,7 +43,7 @@
RObject getEnv();
/**
- * Name, relative to the environment, specified by a symbol or call.
+ * The name, relative to the environment, specified by a symbol or call.
*
* @return the name
*/
diff --git a/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/FunctionCall.java b/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/FunctionCall.java
index e80962e..30b70df 100644
--- a/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/FunctionCall.java
+++ b/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/FunctionCall.java
@@ -17,6 +17,9 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.rj.data.RObject;
import org.eclipse.statet.rj.data.RStore;
@@ -25,7 +28,7 @@
* A function call provides a comfortable way to build and execute
* R function call.
*
- * <p>A function call builder for a given function can be created by
+ * <p>A function call builder for a given function can be created by
* {@link RService#createFunctionCall(String)}.</p>
*
* <p>The builder mainly provides methods to add arguments and to
@@ -33,10 +36,10 @@
*
* <p>Arguments are added by the <code>#add...()</code> methods. The
* order they are added is exactly the order they are send to R. There
- * are add methods for a symbol referring to data existing in R,
+ * are add methods for a symbol referring to data existing in R,
* for given R data objects and for single data values which are
* transformed automatically from java primitives into R data objects.
- * All methods are available in a variant with and without a parameter
+ * All methods are available in a variant with and without a parameter
* for the R argument name. An unnamed argument can be specified by
* using the variant without the argument name parameter or by specifying
* the name as <code>null</code>.</p>
@@ -44,6 +47,7 @@
* <p>The common guidelines in {@link RService} (like concurrency) are effective
* for all evaluation methods in this interface.</p>
*/
+@NonNullByDefault
public interface FunctionCall {
@@ -59,7 +63,7 @@
*
* @see #addChar(String, String) to add a string/character value directly
*/
- FunctionCall add(String arg, String expression);
+ FunctionCall add(@Nullable String arg, String expression);
/**
* Adds a unnamed argument with the given R expression as value.
@@ -81,7 +85,7 @@
* @param data an R data object
* @return a reference to this object
*/
- FunctionCall add(String arg, RObject data);
+ FunctionCall add(@Nullable String arg, RObject data);
/**
* Adds an unnamed argument with the given R data object as value.
@@ -96,19 +100,19 @@
/**
* Adds an argument with the given boolean/logical as value.
*
- * <p>The Java boolean value is transformed into an R data object
+ * <p>The Java boolean value is transformed into an R data object
* of type {@link RStore#LOGICAL logical}.</p>
*
* @param arg the name of the argument or <code>null</code> for unnamed
* @param logical the value of the argument
* @return a reference to this object
*/
- FunctionCall addLogi(String arg, boolean logical);
+ FunctionCall addLogi(@Nullable String arg, boolean logical);
/**
* Adds an unnamed argument with the given boolean/logical as value.
*
- * <p>The Java boolean value is transformed into an R data object
+ * <p>The Java boolean value is transformed into an R data object
* of type {@link RStore#LOGICAL logical}.</p>
*
* @param logical the value of the argument
@@ -119,19 +123,19 @@
/**
* Adds an argument with the given integer as value.
*
- * <p>The Java integer value is transformed into an R data object
+ * <p>The Java integer value is transformed into an R data object
* of type {@link RStore#INTEGER integer}.</p>
*
* @param arg the name of the argument or <code>null</code> for unnamed
* @param integer the value of the argument
* @return a reference to this object
*/
- FunctionCall addInt(String arg, int integer);
+ FunctionCall addInt(@Nullable String arg, int integer);
/**
* Adds an unnamed argument with the given integer as value.
*
- * <p>The Java integer value is transformed into an R data object
+ * <p>The Java integer value is transformed into an R data object
* of type {@link RStore#INTEGER integer}.</p>
*
* @param integer the value of the argument
@@ -142,19 +146,19 @@
/**
* Adds an argument with the given double/numeric as value.
*
- * <p>The Java double value is transformed into an R data object
+ * <p>The Java double value is transformed into an R data object
* of type {@link RStore#NUMERIC numeric}, also called real.</p>
*
* @param arg the name of the argument or <code>null</code> for unnamed
* @param numeric the value of the argument
* @return a reference to this object
*/
- FunctionCall addNum(String arg, double numeric);
+ FunctionCall addNum(@Nullable String arg, double numeric);
/**
* Adds an unnamed argument with the given double/numeric as value.
*
- * <p>The Java double value is transformed into an R data object
+ * <p>The Java double value is transformed into an R data object
* of type {@link RStore#NUMERIC numeric}, also called real.</p>
*
* @param arg the name of the argument
@@ -166,19 +170,19 @@
/**
* Adds an argument with the given string/character as value.
*
- * <p>The Java String value is transformed into an R data object
+ * <p>The Java String value is transformed into an R data object
* of type {@link RStore#CHARACTER character}.</p>
*
* @param arg the name of the argument or <code>null</code> for unnamed
* @param character the value of the argument
* @return a reference to this object
*/
- FunctionCall addCplx(String arg, double real, double imaginary);
+ FunctionCall addCplx(@Nullable String arg, double real, double imaginary);
/**
* Adds an unnamed argument with the given string/character as value.
*
- * <p>The Java String value is transformed into an R data object
+ * <p>The Java String value is transformed into an R data object
* of type {@link RStore#CHARACTER character}.</p>
*
* @param character the value of the argument
@@ -189,19 +193,19 @@
/**
* Adds an argument with the given string/character as value.
*
- * <p>The Java String value is transformed into an R data object
+ * <p>The Java String value is transformed into an R data object
* of type {@link RStore#CHARACTER character}.</p>
*
* @param arg the name of the argument or <code>null</code> for unnamed
* @param character the value of the argument
* @return a reference to this object
*/
- FunctionCall addChar(String arg, String character);
+ FunctionCall addChar(@Nullable String arg, String character);
/**
* Adds an unnamed argument with the given string/character as value.
*
- * <p>The Java String value is transformed into an R data object
+ * <p>The Java String value is transformed into an R data object
* of type {@link RStore#CHARACTER character}.</p>
*
* @param character the value of the argument
@@ -212,18 +216,18 @@
/**
* Adds an argument with the given NULL as value.
*
- * <p>The Java String value is transformed into an R data
+ * <p>The Java String value is transformed into an R data
* {@link RObject#NULL NULL} object.</p>
*
* @param arg the name of the argument or <code>null</code> for unnamed
* @return a reference to this object
*/
- FunctionCall addNull(String arg);
+ FunctionCall addNull(@Nullable String arg);
/**
* Adds an unnamed argument with the given NULL as value.
*
- * <p>The Java String value is transformed into an R data
+ * <p>The Java String value is transformed into an R data
* {@link RObject#NULL NULL} object.</p>
*
* @return a reference to this object
@@ -257,7 +261,8 @@
*
* @since de.walware.rj.services 2.1
*/
- void evalVoid(RObject envir, IProgressMonitor monitor) throws CoreException;
+ void evalVoid(@Nullable RObject envir,
+ IProgressMonitor monitor) throws CoreException;
/**
* Performs the evaluation of the this function call in R and returns its value as R data object.
@@ -292,7 +297,7 @@
* @throws CoreException if the operation was canceled or failed; the status
* of the exception contains detail about the cause
*/
- RObject evalData(String factoryId, int options, int depth,
+ RObject evalData(@Nullable String factoryId, int options, int depth,
IProgressMonitor monitor) throws CoreException;
/**
@@ -314,15 +319,16 @@
*
* @since de.walware.rj.services 2.1
*/
- RObject evalData(RObject envir, String factoryId, int options, int depth,
+ RObject evalData(@Nullable RObject envir,
+ @Nullable String factoryId, int options, int depth,
IProgressMonitor monitor) throws CoreException;
/**
* Performs the evaluation of the this function call in R and assign its return value to
* the specified expression.
*
- * <p>The target have to be a valid target expression for a R <code><-</code> assignment
- * operation. A single symbol like <code>x</code> or <code>`x-y`</code>, a path in an object
+ * <p>The target have to be a valid target expression for a R <code><-</code> assignment
+ * operation. A single symbol like <code>x</code> or <code>`x-y`</code>, a path in an object
* tree like <code>xlist$item1</code> or <code>xobj@slotName</code> is valid as well as
* special function calls which supports assignments like <code>dim(x)</code>.</p>
*
@@ -335,6 +341,7 @@
*
* @since de.walware.rj.services 2.0
*/
- void evalAssign(String target, IProgressMonitor monitor) throws CoreException;
+ void evalAssign(String target,
+ IProgressMonitor monitor) throws CoreException;
}
diff --git a/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/RJServices.java b/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/RJServices.java
index 5f59b35..d0f0753 100644
--- a/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/RJServices.java
+++ b/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/RJServices.java
@@ -14,7 +14,10 @@
package org.eclipse.statet.rj.services;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+@NonNullByDefault
public class RJServices {
diff --git a/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/RService.java b/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/RService.java
index 7320efd..3c2677f 100644
--- a/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/RService.java
+++ b/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/RService.java
@@ -20,6 +20,9 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.rj.data.RObject;
import org.eclipse.statet.rj.data.RReference;
import org.eclipse.statet.rj.graphic.core.RGraphic;
@@ -29,22 +32,22 @@
* A interface with methods to evaluate and exchange data with R.
* <p>
* It depends on the application how to get access to the RService.
- * In StatET it is passed as adapter argument in
+ * In StatET it is passed as adapter argument in
* {@link org.eclipse.statet.ecommons.ts.core.IToolRunnable#run(org.eclipse.statet.ecommons.ts.core.IToolService, IProgressMonitor) IToolRunnable#run(...)},
* if the R console supports the featureset {@link org.eclipse.statet.r.core.tool.RTool#R_DATA_FEATURESET_ID RTool#R_DATA_FEATURESET_ID}.
- * In applications using R in the background by the RServi library,
+ * In applications using R in the background by the RServi library,
* the {@link org.eclipse.statet.rj.servi.RServi RServi} object provides the RService methods.</p>
* <p>
* If the application has also an console, the operations of an RService
* usually doesn't appears in the console. Even not recommended, it is possible
* to call special R functions like print which output is written to the console.
- * It should absolutely avoided to use functions like <code>readline</code> which requires
+ * It should absolutely avoided to use functions like <code>readline</code> which requires
* interaction with the console.</p>
* <p>
* The methods of an RService should not be called concurrently by different
* threads. The RService consumer have to make sure that the function calls
* are synchronized, if multiple thread have access to the same instance.
- * Implementations of RService interface can perform checks too, but the consumer
+ * Implementations of RService interface can perform checks too, but the consumer
* must not rely on that.</p>
* <p>
* Especially for longer evaluations, it is recommended that the application implements
@@ -59,6 +62,7 @@
*
* @since de.walware.rj.services 0.4
*/
+@NonNullByDefault
public interface RService {
@@ -89,7 +93,7 @@
*
* @since de.walware.rj.services 2.1
**/
- int LOAD_ENVIR= 1 << 4;
+ int LOAD_ENVIRONMENT= 1 << 4;
/**
* Option flag indicating to eval all promises directly.
@@ -112,7 +116,8 @@
* @throws CoreException if the operation was canceled or failed; the status
* of the exception contains detail about the cause
*/
- void evalVoid(String expression, IProgressMonitor monitor) throws CoreException;
+ void evalVoid(String expression,
+ IProgressMonitor monitor) throws CoreException;
/**
* Performs the evaluation of the given expression in R without returning a value.
@@ -129,7 +134,8 @@
*
* @since de.walware.rj.services 2.1
*/
- void evalVoid(String expression, RObject envir, IProgressMonitor monitor) throws CoreException;
+ void evalVoid(String expression, @Nullable RObject envir,
+ IProgressMonitor monitor) throws CoreException;
/**
* Performs the evaluation of the given expression in R and returns its value as R data object.
@@ -147,7 +153,8 @@
* @throws CoreException if the operation was canceled or failed; the status
* of the exception contains detail about the cause
*/
- RObject evalData(String expression, IProgressMonitor monitor) throws CoreException;
+ RObject evalData(String expression,
+ IProgressMonitor monitor) throws CoreException;
/**
* Performs the evaluation of the given expression in R and returns its value. The method returns
@@ -169,7 +176,8 @@
* @see #DEPTH_INFINITE
* @see #DEPTH_ONE
*/
- RObject evalData(String expression, String factoryId, int options, int depth,
+ RObject evalData(String expression,
+ @Nullable String factoryId, int options, int depth,
IProgressMonitor monitor) throws CoreException;
/**
@@ -195,19 +203,24 @@
* @see #DEPTH_INFINITE
* @see #DEPTH_ONE
*/
- RObject evalData(String expression, RObject envir, String factoryId, int options, int depth,
+ RObject evalData(String expression, @Nullable RObject envir,
+ @Nullable String factoryId, int options, int depth,
IProgressMonitor monitor) throws CoreException;
- RObject evalData(RReference reference, IProgressMonitor monitor) throws CoreException;
- RObject evalData(RReference reference, String factoryId, int options, int depth,
+ RObject evalData(RReference reference,
+ IProgressMonitor monitor) throws CoreException;
+ RObject evalData(RReference reference,
+ @Nullable String factoryId, int options, int depth,
+ IProgressMonitor monitor) throws CoreException;
+
IProgressMonitor monitor) throws CoreException;
/**
* Performs the assignment of the given R data object to an expression in R. The method returns
* after the assignment is finished.
*
- * <p>The target have to be a valid target expression for a R <code><-</code> assignment
- * operation. A single symbol like <code>x</code> or <code>`x-y`</code>, a path in an object
+ * <p>The target have to be a valid target expression for a R <code><-</code> assignment
+ * operation. A single symbol like <code>x</code> or <code>`x-y`</code>, a path in an object
* tree like <code>xlist$item1</code> or <code>xobj@slotName</code> is valid as well as
* special function calls which supports assignments like <code>dim(x)</code>.</p>
*
@@ -220,7 +233,8 @@
* @throws CoreException if the operation was canceled or was failed; the status
* of the exception contains detail about the cause
*/
- void assignData(String target, RObject data, IProgressMonitor monitor) throws CoreException;
+ void assignData(String target, RObject data,
+ IProgressMonitor monitor) throws CoreException;
// void assignDataToAttribute(String expression, String attributeName, RObject data, IProgressMonitor monitor) throws CoreException;
diff --git a/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/RServiceControlExtension.java b/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/RServiceControlExtension.java
index b3cab26..15b13d3 100644
--- a/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/RServiceControlExtension.java
+++ b/core/org.eclipse.statet.rj.services.core/src/org/eclipse/statet/rj/services/RServiceControlExtension.java
@@ -19,11 +19,14 @@
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
*
* @provisional
*/
+@NonNullByDefault
public interface RServiceControlExtension {
/**
@@ -56,7 +59,7 @@
* If short background operations are waiting for execution, they are executed (depends on
* implementation).</p>
* <p>
- * The current thread must hold the lock {@link #getWaitLock()}. The method returns after a
+ * The current thread must hold the lock {@link #getWaitLock()}. The method returns after a
* short waiting time, operations are executed <b>or</b> {@link #resume()} is called.</p>
*
* @param monitor the current monitor
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RCircle.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RCircle.java
index 7303082..c91023d 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RCircle.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RCircle.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.rj.graphic.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Circle with center <code>(x, y)</code> and radius <code>r</code>.
*/
+@NonNullByDefault
public class RCircle extends RGraphicElement {
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RClipSetting.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RClipSetting.java
index f104df3..0785b2e 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RClipSetting.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RClipSetting.java
@@ -14,11 +14,14 @@
package org.eclipse.statet.rj.graphic.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Rectangular clipping area with the vertexes <code>(x0, y0)</code>, <code>(x0, y1)</code>,
* <code>(x1, y1)</code>, <code>(x1, y1)</code>.
*/
+@NonNullByDefault
public class RClipSetting extends RPaintSetting {
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RColorSetting.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RColorSetting.java
index a118533..e83ea0d 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RColorSetting.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RColorSetting.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.rj.graphic.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Configures paint color.
*/
+@NonNullByDefault
public class RColorSetting extends RPaintSetting {
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RFillSetting.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RFillSetting.java
index ef62600..6d7ed7a 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RFillSetting.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RFillSetting.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.rj.graphic.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Configures filling paint color.
*/
+@NonNullByDefault
public class RFillSetting extends RPaintSetting {
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RFontSetting.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RFontSetting.java
index 994523b..374fe4c 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RFontSetting.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RFontSetting.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.rj.graphic.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Configures the text font.
*/
+@NonNullByDefault
public class RFontSetting extends RPaintSetting {
/**
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RGraphic.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RGraphic.java
index 6058b2c..c1dee1c 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RGraphic.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RGraphic.java
@@ -16,6 +16,8 @@
import java.util.List;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* An RGraphic represents the client side of a graphic (device)
@@ -31,6 +33,7 @@
* drawing instructions. Settings are valid for all following drawing instructions
* until it is changed by a new setting instruction of the same type.</p>
*/
+@NonNullByDefault
public interface RGraphic {
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RGraphicElement.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RGraphicElement.java
index 1261b90..3fdc496 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RGraphicElement.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RGraphicElement.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.rj.graphic.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Parent of all instructions painting graphic elements (in contrast to {@link RPaintSetting}).
*/
+@NonNullByDefault
public abstract class RGraphicElement implements RGraphicInstruction {
}
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RGraphicInitialization.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RGraphicInitialization.java
index 45b553e..37c704f 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RGraphicInitialization.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RGraphicInitialization.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.rj.graphic.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* First instruction of an R graphic.
*/
+@NonNullByDefault
public class RGraphicInitialization implements RGraphicInstruction {
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RGraphicInstruction.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RGraphicInstruction.java
index 5dc61a5..fa69d2a 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RGraphicInstruction.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RGraphicInstruction.java
@@ -14,6 +14,8 @@
package org.eclipse.statet.rj.graphic.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Instruction to paint a R graphic.
@@ -22,6 +24,7 @@
*
* @see RGraphic
*/
+@NonNullByDefault
public interface RGraphicInstruction {
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RLine.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RLine.java
index 48bf94f..e73ee15 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RLine.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RLine.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.rj.graphic.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Line with end points <code>(x0, y0)</code> and <code>(x1, y1)</code>.
*/
+@NonNullByDefault
public class RLine extends RGraphicElement {
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RLineSetting.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RLineSetting.java
index a795286..313fb23 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RLineSetting.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RLineSetting.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.rj.graphic.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Configures line width and type.
*/
+@NonNullByDefault
public class RLineSetting extends RPaintSetting {
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RPath.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RPath.java
index 68c2d8e..e6c3fa2 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RPath.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RPath.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.rj.graphic.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Path with vertices <code>(x[1], y[1])</code>, ..., <code>(x[n-1], y[n-1])</code>.
*/
+@NonNullByDefault
public class RPath extends RGraphicElement {
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RPolygon.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RPolygon.java
index fea2455..3afbfbe 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RPolygon.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RPolygon.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.rj.graphic.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Polygon with vertices <code>(x[1], y[1])</code>, ..., <code>(x[n-1], y[n-1])</code>.
*/
+@NonNullByDefault
public class RPolygon extends RGraphicElement {
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RPolyline.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RPolyline.java
index d9adf44..32cb6d3 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RPolyline.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RPolyline.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.rj.graphic.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Polyline through <code>(x[0], y[0])</code>, ..., <code>(x[n-1], y[n-1])</code>.
*/
+@NonNullByDefault
public class RPolyline extends RGraphicElement {
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RRaster.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RRaster.java
index e505995..de8d61e 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RRaster.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RRaster.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.rj.graphic.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Raster image.
*/
+@NonNullByDefault
public class RRaster extends RGraphicElement {
/**
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RRect.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RRect.java
index 4a2e3d0..d00497f 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RRect.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RRect.java
@@ -14,11 +14,14 @@
package org.eclipse.statet.rj.graphic.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Rectangle with the vertexes <code>(x0, y0)</code>, <code>(x0, y1)</code>,
* <code>(x1, y1)</code>, <code>(x1, y1)</code>.
*/
+@NonNullByDefault
public class RRect extends RGraphicElement {
diff --git a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RText.java b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RText.java
index 496c99b..06e28ac 100644
--- a/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RText.java
+++ b/core/org.eclipse.statet.rj.services.core/srcGraphic/org/eclipse/statet/rj/graphic/core/RText.java
@@ -14,11 +14,14 @@
package org.eclipse.statet.rj.graphic.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Text at position <code>(x, y)</code>, horizontal adjusted by <code>hAdj</code>
* [0, 1] and rotated by <code>rDeg</code>.
*/
+@NonNullByDefault
public class RText extends RGraphicElement {
/**
diff --git a/eclient/org.eclipse.statet.rj.eclient.core/src/org/eclipse/statet/rj/eclient/core/AbstractRToolCommandHandler.java b/eclient/org.eclipse.statet.rj.eclient.core/src/org/eclipse/statet/rj/eclient/core/AbstractRToolCommandHandler.java
index 74fc7a4..27e567a 100644
--- a/eclient/org.eclipse.statet.rj.eclient.core/src/org/eclipse/statet/rj/eclient/core/AbstractRToolCommandHandler.java
+++ b/eclient/org.eclipse.statet.rj.eclient.core/src/org/eclipse/statet/rj/eclient/core/AbstractRToolCommandHandler.java
@@ -20,6 +20,8 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.ecommons.ts.core.ToolCommandHandler;
import org.eclipse.statet.ecommons.ts.core.ToolService;
@@ -27,6 +29,7 @@
/**
* @since 1.2
*/
+@NonNullByDefault
public abstract class AbstractRToolCommandHandler implements ToolCommandHandler {
diff --git a/eclient/org.eclipse.statet.rj.eclient.core/src/org/eclipse/statet/rj/eclient/core/AbstractRToolRunnable.java b/eclient/org.eclipse.statet.rj.eclient.core/src/org/eclipse/statet/rj/eclient/core/AbstractRToolRunnable.java
index 6f7f771..e9cb3a1 100644
--- a/eclient/org.eclipse.statet.rj.eclient.core/src/org/eclipse/statet/rj/eclient/core/AbstractRToolRunnable.java
+++ b/eclient/org.eclipse.statet.rj.eclient.core/src/org/eclipse/statet/rj/eclient/core/AbstractRToolRunnable.java
@@ -17,6 +17,8 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.ecommons.ts.core.Tool;
import org.eclipse.statet.ecommons.ts.core.ToolRunnable;
import org.eclipse.statet.ecommons.ts.core.ToolService;
@@ -30,27 +32,28 @@
*
* @since 1.2
*/
+@NonNullByDefault
public abstract class AbstractRToolRunnable implements ToolRunnable {
- private final String fTypeId;
- private final String fLabel;
+ private final String typeId;
+ private final String label;
public AbstractRToolRunnable(final String typeId, final String label) {
- this.fTypeId= typeId;
- this.fLabel= label;
+ this.typeId= typeId;
+ this.label= label;
}
@Override
public String getTypeId() {
- return this.fTypeId;
+ return this.typeId;
}
@Override
public String getLabel() {
- return this.fLabel;
+ return this.label;
}
@Override
diff --git a/eclient/org.eclipse.statet.rj.eclient.core/src/org/eclipse/statet/rj/eclient/core/RToolService.java b/eclient/org.eclipse.statet.rj.eclient.core/src/org/eclipse/statet/rj/eclient/core/RToolService.java
index 8e9b9db..a1309a5 100644
--- a/eclient/org.eclipse.statet.rj.eclient.core/src/org/eclipse/statet/rj/eclient/core/RToolService.java
+++ b/eclient/org.eclipse.statet.rj.eclient.core/src/org/eclipse/statet/rj/eclient/core/RToolService.java
@@ -14,6 +14,8 @@
package org.eclipse.statet.rj.eclient.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.ecommons.ts.core.ToolService;
import org.eclipse.statet.rj.services.RService;
@@ -22,6 +24,7 @@
/**
* @since 1.2
*/
+@NonNullByDefault
public interface RToolService extends ToolService, RService {
}
diff --git a/eclient/org.eclipse.statet.rj.eclient.core/src/org/eclipse/statet/rj/eclient/core/ToolFQRObjectRef.java b/eclient/org.eclipse.statet.rj.eclient.core/src/org/eclipse/statet/rj/eclient/core/ToolFQRObjectRef.java
index c427307..1842d98 100644
--- a/eclient/org.eclipse.statet.rj.eclient.core/src/org/eclipse/statet/rj/eclient/core/ToolFQRObjectRef.java
+++ b/eclient/org.eclipse.statet.rj.eclient.core/src/org/eclipse/statet/rj/eclient/core/ToolFQRObjectRef.java
@@ -14,6 +14,8 @@
package org.eclipse.statet.rj.eclient.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.ecommons.ts.core.Tool;
import org.eclipse.statet.rj.data.RLanguage;
@@ -22,6 +24,7 @@
import org.eclipse.statet.rj.services.FQRObjectRef;
+@NonNullByDefault
public class ToolFQRObjectRef implements FQRObjectRef {
diff --git a/eclient/org.eclipse.statet.rj.eclient.graphics/src/org/eclipse/statet/internal/rj/eclient/graphics/EclipseRGraphic.java b/eclient/org.eclipse.statet.rj.eclient.graphics/src/org/eclipse/statet/internal/rj/eclient/graphics/EclipseRGraphic.java
index bc021ed..e867ece 100644
--- a/eclient/org.eclipse.statet.rj.eclient.graphics/src/org/eclipse/statet/internal/rj/eclient/graphics/EclipseRGraphic.java
+++ b/eclient/org.eclipse.statet.rj.eclient.graphics/src/org/eclipse/statet/internal/rj/eclient/graphics/EclipseRGraphic.java
@@ -37,6 +37,7 @@
import org.eclipse.statet.jcommons.collections.CopyOnWriteIdentityListSet;
import org.eclipse.statet.jcommons.collections.ImCollections;
+import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.ecommons.runtime.core.StatusChangeListener;
import org.eclipse.statet.ecommons.ts.core.Tool;
@@ -1187,7 +1188,7 @@
}
@Override
- public Tool getRHandle() {
+ public @Nullable Tool getRHandle() {
if (this.actions != null) {
return this.actions.getRHandle();
}
diff --git a/eclient/org.eclipse.statet.rj.eclient.graphics/src/org/eclipse/statet/rj/eclient/graphics/ERGraphic.java b/eclient/org.eclipse.statet.rj.eclient.graphics/src/org/eclipse/statet/rj/eclient/graphics/ERGraphic.java
index 88e3a56..b0b4864 100644
--- a/eclient/org.eclipse.statet.rj.eclient.graphics/src/org/eclipse/statet/rj/eclient/graphics/ERGraphic.java
+++ b/eclient/org.eclipse.statet.rj.eclient.graphics/src/org/eclipse/statet/rj/eclient/graphics/ERGraphic.java
@@ -21,6 +21,8 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.runtime.core.StatusChangeListener;
import org.eclipse.statet.ecommons.ts.core.Tool;
@@ -112,7 +114,7 @@
@Override
boolean isActive();
- Tool getRHandle();
+ @Nullable Tool getRHandle();
@Override
List<? extends ERGraphicInstruction> getInstructions();
diff --git a/examples/org.eclipse.statet.rj.servi.demo/.classpath b/examples/org.eclipse.statet.rj.servi.demo/.classpath
index eca7bdb..7728a88 100644
--- a/examples/org.eclipse.statet.rj.servi.demo/.classpath
+++ b/examples/org.eclipse.statet.rj.servi.demo/.classpath
@@ -1,7 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+ <attributes>
+ <attribute name="annotationpath" value="/org.eclipse.statet/eea/"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+ <attributes>
+ <attribute name="annotationpath" value="/org.eclipse.statet/eea/"/>
+ </attributes>
+ </classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/examples/org.eclipse.statet.rj.servi.rcpdemo/.classpath b/examples/org.eclipse.statet.rj.servi.rcpdemo/.classpath
index eca7bdb..7728a88 100644
--- a/examples/org.eclipse.statet.rj.servi.rcpdemo/.classpath
+++ b/examples/org.eclipse.statet.rj.servi.rcpdemo/.classpath
@@ -1,7 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+ <attributes>
+ <attribute name="annotationpath" value="/org.eclipse.statet/eea/"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+ <attributes>
+ <attribute name="annotationpath" value="/org.eclipse.statet/eea/"/>
+ </attributes>
+ </classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/examples/org.eclipse.statet.rj.servi.rcpdemo2/.classpath b/examples/org.eclipse.statet.rj.servi.rcpdemo2/.classpath
index eca7bdb..7728a88 100644
--- a/examples/org.eclipse.statet.rj.servi.rcpdemo2/.classpath
+++ b/examples/org.eclipse.statet.rj.servi.rcpdemo2/.classpath
@@ -1,7 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+ <attributes>
+ <attribute name="annotationpath" value="/org.eclipse.statet/eea/"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+ <attributes>
+ <attribute name="annotationpath" value="/org.eclipse.statet/eea/"/>
+ </attributes>
+ </classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/examples/org.eclipse.statet.rj.servi.rcpdemo2/src/org/eclipse/statet/rj/servi/rcpdemo/RServiSession.java b/examples/org.eclipse.statet.rj.servi.rcpdemo2/src/org/eclipse/statet/rj/servi/rcpdemo/RServiSession.java
index f0477fb..17dcd60 100644
--- a/examples/org.eclipse.statet.rj.servi.rcpdemo2/src/org/eclipse/statet/rj/servi/rcpdemo/RServiSession.java
+++ b/examples/org.eclipse.statet.rj.servi.rcpdemo2/src/org/eclipse/statet/rj/servi/rcpdemo/RServiSession.java
@@ -30,6 +30,9 @@
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.ui.statushandlers.StatusManager;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.ts.core.SystemRunnable;
import org.eclipse.statet.ecommons.ts.core.Tool;
import org.eclipse.statet.ecommons.ts.core.ToolQueue;
@@ -49,9 +52,10 @@
/**
- * Implementations of ECommons Tool Service and Scheduling interfaces (org.eclipse.statet.ecommons.ts.core) for
+ * Implementations of ECommons Tool Service and Scheduling interfaces (org.eclipse.statet.ecommons.ts.core) for
* RServi using Eclipse jobs.
*/
+@NonNullByDefault
public class RServiSession extends PlatformObject implements Tool {
@@ -132,7 +136,7 @@
}
@Override
- public void evalVoid(final String expression, final RObject envir,
+ public void evalVoid(final String expression, final @Nullable RObject envir,
final IProgressMonitor monitor) throws CoreException {
RServiSession.this.servi.evalVoid(expression, envir, monitor);
}
@@ -145,14 +149,14 @@
@Override
public RObject evalData(final String expression,
- final String factoryId, final int options, final int depth,
+ final @Nullable String factoryId, final int options, final int depth,
final IProgressMonitor monitor) throws CoreException {
return RServiSession.this.servi.evalData(expression, factoryId, options, depth, monitor);
}
@Override
- public RObject evalData(final String expression, final RObject envir,
- final String factoryId, final int options, final int depth,
+ public RObject evalData(final String expression, final @Nullable RObject envir,
+ final @Nullable String factoryId, final int options, final int depth,
final IProgressMonitor monitor) throws CoreException {
return RServiSession.this.servi.evalData(expression, envir, factoryId, options, depth, monitor);
}
@@ -165,7 +169,7 @@
@Override
public RObject evalData(final RReference reference,
- final String factoryId, final int options, final int depth,
+ final @Nullable String factoryId, final int options, final int depth,
final IProgressMonitor monitor) throws CoreException {
return RServiSession.this.servi.evalData(reference, factoryId, options, depth, monitor);
}
diff --git a/servi/org.eclipse.statet.rj.servi.webapp/.classpath b/servi/org.eclipse.statet.rj.servi.webapp/.classpath
index 168a660..4aacce5 100644
--- a/servi/org.eclipse.statet.rj.servi.webapp/.classpath
+++ b/servi/org.eclipse.statet.rj.servi.webapp/.classpath
@@ -3,6 +3,7 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="owner.project.facets" value="java"/>
+ <attribute name="annotationpath" value="/org.eclipse.statet/eea/"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
diff --git a/servi/org.eclipse.statet.rj.servi/.classpath b/servi/org.eclipse.statet.rj.servi/.classpath
index b323920..0d41512 100644
--- a/servi/org.eclipse.statet.rj.servi/.classpath
+++ b/servi/org.eclipse.statet.rj.servi/.classpath
@@ -3,9 +3,14 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="owner.project.facets" value="java"/>
+ <attribute name="annotationpath" value="/org.eclipse.statet/eea/"/>
</attributes>
</classpathentry>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+ <attributes>
+ <attribute name="annotationpath" value="/org.eclipse.statet/eea/"/>
+ </attributes>
+ </classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="srcServer"/>
<classpathentry kind="src" path="srcServiPool"/>
diff --git a/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/internal/rj/servi/RServiImpl.java b/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/internal/rj/servi/RServiImpl.java
index efa126d..451367a 100644
--- a/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/internal/rj/servi/RServiImpl.java
+++ b/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/internal/rj/servi/RServiImpl.java
@@ -30,6 +30,9 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.runtime.core.ECommonsRuntime;
import org.eclipse.statet.internal.rj.servi.server.RServiBackend;
@@ -56,6 +59,7 @@
/**
* Client side {@link RServi} handler
*/
+@NonNullByDefault
public class RServiImpl implements RServi, Externalizable {
@@ -137,18 +141,10 @@
this.rjs.setServer(this.backend, 1);
}
+ @SuppressWarnings("null")
public RServiImpl() {
}
-
- public void setRHandle(final Object rHandle) {
- this.rHandle= rHandle;
- }
-
- public Object getRHandle() {
- return this.rHandle;
- }
-
@Override
public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException {
this.accessId= in.readLong();
@@ -165,6 +161,15 @@
}
+ public void setRHandle(final Object rHandle) {
+ this.rHandle= rHandle;
+ }
+
+ public Object getRHandle() {
+ return this.rHandle;
+ }
+
+
private void init() throws CoreException {
this.rjsId= RjsComConfig.registerClientComHandler(this.rjs);
final Map<String, Object> properties= new HashMap<>();
@@ -215,7 +220,7 @@
}
@Override
- public void evalVoid(final String expression, final RObject envir,
+ public void evalVoid(final String expression, final @Nullable RObject envir,
final IProgressMonitor monitor) throws CoreException {
if (this.rjsId == 0) {
init();
@@ -233,7 +238,8 @@
}
@Override
- public RObject evalData(final String expression, final String factoryId, final int options, final int depth,
+ public RObject evalData(final String expression,
+ final @Nullable String factoryId, final int options, final int depth,
final IProgressMonitor monitor) throws CoreException {
if (this.rjsId == 0) {
init();
@@ -242,8 +248,8 @@
}
@Override
- public RObject evalData(final String expression, final RObject envir,
- final String factoryId, final int options, final int depth,
+ public RObject evalData(final String expression, final @Nullable RObject envir,
+ final @Nullable String factoryId, final int options, final int depth,
final IProgressMonitor monitor) throws CoreException {
if (this.rjsId == 0) {
init();
@@ -261,7 +267,8 @@
}
@Override
- public RObject evalData(final RReference reference, final String factoryId, final int options, final int depth,
+ public RObject evalData(final RReference reference,
+ final @Nullable String factoryId, final int options, final int depth,
final IProgressMonitor monitor) throws CoreException {
if (this.rjsId == 0) {
init();
@@ -279,7 +286,8 @@
}
@Override
- public void downloadFile(final OutputStream out, final String fileName, final int options,
+ public void downloadFile(final OutputStream out, final String fileName,
+ final int options,
final IProgressMonitor monitor) throws CoreException {
if (this.rjsId == 0) {
init();
@@ -288,7 +296,8 @@
}
@Override
- public byte[] downloadFile(final String fileName, final int options,
+ public byte[] downloadFile(final String fileName,
+ final int options,
final IProgressMonitor monitor) throws CoreException {
if (this.rjsId == 0) {
init();
@@ -297,7 +306,8 @@
}
@Override
- public void uploadFile(final InputStream in, final long length, final String fileName, final int options,
+ public void uploadFile(final InputStream in, final long length, final String fileName,
+ final int options,
final IProgressMonitor monitor) throws CoreException {
if (this.rjsId == 0) {
init();
diff --git a/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/rj/servi/RServi.java b/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/rj/servi/RServi.java
index 6743190..b45d694 100644
--- a/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/rj/servi/RServi.java
+++ b/servi/org.eclipse.statet.rj.servi/src/org/eclipse/statet/rj/servi/RServi.java
@@ -16,22 +16,24 @@
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.rj.services.RService;
/**
- * A RServi provides {@link RService R services} as background computing engine without an
- * interactive R console. An RServi can be for example connected to a server side R engine or
+ * A RServi provides {@link RService R services} as background computing engine without an
+ * interactive R console. An RServi can be for example connected to a server side R engine or
* an R engine embedded in the local application.
* <p>
* How to receive an RServi instance depends on the application.
- * The RServi framework includes a server side RServi
+ * The RServi framework includes a server side RServi
* {@link org.eclipse.statet.rj.servi.node.RServiPool pool}
* which can be used to provide RServi instances. To get a RServi instance
* from such a pool which made available via RMI {@link org.eclipse.statet.rj.servi.pool.RServiUtil RServiUtil}
* provides helper methods to request a RServi instance.</p>
* <p>
- * In many applications it is sufficient to use an RServi for a direct
+ * In many applications it is sufficient to use an RServi for a direct
* sequence of executions, so that request, evaluations and closing can be
* performed one after another in a single thread. If it is required to use
* the RServi multiple times (e.g. a large data set should be reused),
@@ -45,13 +47,14 @@
* After closing the RServi all resources created by it, R data objects and
* files on the R host system are cleaned up. Client side R data objects and
* files are not affected by the clean up. After calling this method,
- * the RServi instance can no longer be used; further function call will
+ * the RServi instance can no longer be used; further function call will
* throw an exception.</p>
* <p>
* All common guidelines of {@link RService} should be taken into account.</p>
*
* @since 0.1
*/
+@NonNullByDefault
public interface RServi extends RService {