Bug 568167: [RJ-Data] Change hierarchy of factor stores (RFactorStore
no longer extends RIntegerStore) fixing nullable definition of
RStore#getChar

Follow-up-to: d3633e3402e37b80b615fb2aadbf93b1d3a8dae2
Change-Id: I78375a313a3db909af79b27f36512dcdff66b028
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RCharacterStore.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RCharacterStore.java
index f49c2ab..767c025 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RCharacterStore.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RCharacterStore.java
@@ -29,6 +29,12 @@
 	
 	
 	@Override
+	String getChar(final int idx);
+	@Override
+	String getChar(final long idx);
+	
+	
+	@Override
 	@Nullable String get(int idx);
 	@Override
 	@Nullable String get(long idx);
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RComplexStore.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RComplexStore.java
index 9cafec5..e65c4f9 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RComplexStore.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RComplexStore.java
@@ -88,6 +88,13 @@
 	boolean isNaN(int idx);
 	boolean isNaN(long idx);
 	
+	
+	@Override
+	String getChar(final int idx);
+	@Override
+	String getChar(final long idx);
+	
+	
 	@Override
 	@Nullable Complex get(int idx);
 	@Override
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RFactorStore.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RFactorStore.java
index 57b1b8b..021ce2c 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RFactorStore.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RFactorStore.java
@@ -25,7 +25,7 @@
  * <code>class(object)</code> returns 'factor'.</p>
  */
 @NonNullByDefault
-public interface RFactorStore extends RIntegerStore {
+public interface RFactorStore extends RStore<Integer> {
 	
 	
 	int MIN_INT= 0x00000001;
@@ -58,6 +58,14 @@
 	RCharacterStore toCharacterData();
 	
 	
+	@Override
+	@Nullable Integer get(int idx);
+	@Override
+	@Nullable Integer get(long idx);
+	
+	@Override
+	@Nullable Integer [] toArray();
+	
 //	void addLevel(final String label);
 //	void renameLevel(final String oldLabel, final String newLabel);
 //	void insertLevel(final int position, final String label);
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RIntegerStore.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RIntegerStore.java
index 3dbe6dd..ba0526b 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RIntegerStore.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RIntegerStore.java
@@ -33,6 +33,12 @@
 	
 	
 	@Override
+	String getChar(final int idx);
+	@Override
+	String getChar(final long idx);
+	
+	
+	@Override
 	@Nullable Integer get(int idx);
 	@Override
 	@Nullable Integer get(long idx);
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RLogicalStore.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RLogicalStore.java
index 1f8d725..6c7d54b 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RLogicalStore.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RLogicalStore.java
@@ -39,6 +39,12 @@
 	
 	
 	@Override
+	String getChar(final int idx);
+	@Override
+	String getChar(final long idx);
+	
+	
+	@Override
 	@Nullable Boolean get(int idx);
 	@Override
 	@Nullable Boolean get(long idx);
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RNumericStore.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RNumericStore.java
index 660a57b..fc4e185 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RNumericStore.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RNumericStore.java
@@ -31,6 +31,13 @@
 	boolean isNaN(int idx);
 	boolean isNaN(long idx);
 	
+	
+	@Override
+	String getChar(final int idx);
+	@Override
+	String getChar(final long idx);
+	
+	
 	@Override
 	@Nullable Double get(int idx);
 	@Override
diff --git a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RRawStore.java b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RRawStore.java
index 2441afe..fe269fe 100644
--- a/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RRawStore.java
+++ b/core/org.eclipse.statet.rj.data/src/org/eclipse/statet/rj/data/RRawStore.java
@@ -38,6 +38,12 @@
 	byte[] toRawArray();
 	
 	@Override
+	String getChar(final int idx);
+	@Override
+	String getChar(final long idx);
+	
+	
+	@Override
 	Byte get(int idx);
 	@Override
 	Byte get(long idx);
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 4a41c9a..5509add 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
@@ -43,7 +43,7 @@
  * Because Java doesn't provide NA for primitive data types directly,
  * the data store provides the methods {@link #isNA(int)} and {@link #setNA(int)}
  * to detect and set such values.
- * If the value at an index of the store is NA, the return value of the other getter
+ * If the value at an index of the store is NA, the return value of the typed getter
  * methods is undefined.</p>
  * <p>
  * Indexes are zero-based (as usual in Java) and not one-base like in R.</p>
@@ -520,7 +520,7 @@
 	 * @throws IndexOutOfBoundsException if the index is out of range
 	 *     (idx &lt; 0 || idx &gt;= length()).
 	 */
-	String getChar(int idx);
+	@Nullable String getChar(int idx);
 	
 	/**
 	 * Returns the character value at the specified index.
@@ -533,7 +533,7 @@
 	 * @throws IndexOutOfBoundsException if the index is out of range
 	 *     (idx &lt; 0 || idx &gt;= length()).
 	 */
-	String getChar(long idx);
+	@Nullable String getChar(long idx);
 	
 	/**
 	 * Sets the character/String value at the specified index.